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;
}
?>
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_demoavec une tabletaches(id, titre, terminé) - Créez un fichier
api.phpqui 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.