Chapitre 29 : Création d'API REST

Construisez votre propre API RESTful en PHP avec JSON et sécurité

1. Qu'est-ce qu'une API REST ?

Une API REST (Representational State Transfer) est un style architectural qui permet aux systèmes de communiquer entre eux via le protocole HTTP. Les données sont généralement échangées au format JSON.

2. Méthodes HTTP principales

  • GET : Récupérer des données
  • POST : Créer une nouvelle ressource
  • PUT : Mettre à jour une ressource existante
  • DELETE : Supprimer une ressource

3. Créer une API simple en PHP

Exemple d'un point d'entrée api.php :

<?php
  header('Content-Type: application/json');

  $method = $_SERVER['REQUEST_METHOD'];
  switch ($method) {
    case 'GET':
      echo json_encode(["message" => "Données récupérées"]);
      break;
    case 'POST':
      $data = json_decode(file_get_contents("php://input"), true);
      echo json_encode(["message" => "Données reçues", "data" => $data]);
      break;
    default:
      http_response_code(405);
      echo json_encode(["erreur" => "Méthode non autorisée"]);
      break;
  }
?>

4. Gestion de la base de données

On peut créer une API REST complète en reliant les actions HTTP à des opérations CRUD en base :

  • GET : SELECT
  • POST : INSERT
  • PUT : UPDATE
  • DELETE : DELETE

Utilisez PDO pour sécuriser vos requêtes et manipuler la base de données.

5. Sécurité de l'API

  • Validez et assainissez les entrées
  • Utilisez des jetons d'authentification (ex. JWT)
  • Limitez l'accès aux IP de confiance ou avec un système d'API key
  • Activez CORS si l'API est appelée depuis un autre domaine

6. Exercice pratique : Créez votre propre API REST

🎯 Objectif : Créer une API PHP permettant de gérer une ressource tâches (todo list).

Consignes :

  • Créez une base api_demo avec une table taches (id, titre, terminé)
  • Créez un fichier api.php qui accepte les méthodes GET, POST, PUT et DELETE
  • Utilisez json_encode() pour envoyer les réponses
  • Utilisez PDO pour interagir avec la base

Bonus :

  • Ajoutez des messages d'erreur clairs en JSON
  • Ajoutez des en-têtes CORS pour autoriser les requêtes d'autres domaines
  • Ajoutez une clé API simple pour restreindre l'accès
Conseil : Cet exercice vous apprendra à exposer des services PHP en tant qu'API REST sécurisée et fonctionnelle.

7. Résumé

  • ✅ Compréhension des méthodes HTTP (GET, POST, PUT, DELETE)
  • ✅ Création d'un point d'entrée pour une API PHP
  • ✅ Envoi et réception de données au format JSON
  • ✅ Connexion d'une API à une base de données
  • ✅ Bases de sécurisation d'une API

Avec ces connaissances, vous pouvez maintenant créer vos propres API RESTful en PHP.