Table des matières

1. Introduction aux APIs

🔹 Qu'est-ce qu'une API ?

Une API (Application Programming Interface) est une interface qui permet à deux programmes ou systèmes différents de communiquer entre eux.

C'est comme un pont entre deux logiciels : l'un envoie une demande (requête) et l'autre renvoie une réponse.

🧠 Exemple concret :

Imagine que tu es dans un restaurant 🍽️
Tu es le client (l'application e-commerce)
Le serveur est l'API
La cuisine est le serveur distant (par exemple : la société de livraison)

Tu passes ta commande au serveur → il la transmet à la cuisine → la cuisine prépare le plat → le serveur te ramène le résultat.

C'est exactement ce que fait une API entre deux systèmes informatiques.

💻 Exemple en PHP :

// Exemple : notre plateforme envoie la commande à une société de livraison
$shipping_result = handleShippingCompanyNotification(
    $db, $order, 'confirmed', $user_id
);

✅ À retenir :

  • Une API permet l'échange de données entre applications
  • Les échanges se font via des requêtes HTTP (GET, POST, PUT, DELETE)
  • Les données sont souvent au format JSON
  • C'est la base de toute intégration entre systèmes externes

2. Structure de base d'une API

Une API doit être claire, sécurisée et cohérente.
Chaque requête doit indiquer :

  • Le type de contenu envoyé ou reçu
  • Les méthodes autorisées
  • Les origines autorisées (CORS)

💻 Exemple en PHP :

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');

🧩 Explication :

  • Content-Type: application/json → indique que les données sont en JSON
  • Access-Control-Allow-Origin → permet d'autoriser d'autres sites à appeler ton API
  • Access-Control-Allow-Methods → autorise certaines actions (POST, GET…)
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit;
}

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['success' => false, 'message' => 'Méthode non autorisée']);
    exit;
}

🧩 Codes de statut HTTP les plus utilisés :

Code Signification Description
200 Succès La requête a réussi
400 Mauvaise requête La syntaxe de la requête est incorrecte
401 Non autorisé Authentification requise
404 Non trouvé Ressource introuvable
405 Méthode non autorisée Méthode HTTP non supportée
500 Erreur serveur Erreur interne du serveur

3. Authentification & Autorisation

Avant d'autoriser une action, ton API doit vérifier l'identité de l'utilisateur.

$user_id = getCurrentUserId($db);

if (!$user_id) {
    throw new Exception('Utilisateur non authentifié');
}

🔐 Principes de sécurité :

  • Toujours vérifier la session ou le token
  • Ne jamais exposer d'informations sensibles
  • S'assurer que l'utilisateur possède bien la ressource (ex : sa propre commande)

💻 Requête SQL sécurisée :

$order = $db->getThisQuery("
    SELECT o.*, s.platform, s.api_url, s.api_key 
    FROM orders o 
    JOIN stores s ON o.store_id = s.id 
    WHERE o.id = ? AND o.user_id = ?
", [$order_id, $user_id]);

✅ Bonnes pratiques :

  • Utiliser des requêtes préparées (évite les injections SQL)
  • Ne jamais passer directement des données utilisateurs dans une requête SQL
  • Toujours filtrer et valider les entrées
  • Utiliser des tokens d'authentification sécurisés
  • Limiter le taux de requêtes (rate limiting)
Retour au blog