C'est quoi une API ? Et REST ?
Une API est un contrat entre deux logiciels. REST est une façon de l'organiser au-dessus de HTTP. La différence entre les deux, et le mensonge de /getLivres.
Ressources et URI
Des noms, pas des verbes : /livres, /livres/42, /livres/42/emprunts. Modéliser ton domaine en ressources, et corriger les URL qui sentent mauvais.
Les verbes HTTP : le CRUD
GET, POST, PUT, PATCH, DELETE appliqués pour de vrai : qui est idempotent, pourquoi ça compte quand le réseau rejoue, et PUT qui remplace tout vs PATCH qui retouche.
Choisir le bon status code
201 et son Location, 204 sans body, 400 vs 422, 409 pour le conflit. Et l'anti-pattern interdit : le 200 qui cache une erreur dans le body.
JSON : le contrat de données
Content-Type côté envoi, Accept côté demande, et un body JSON propre des deux côtés. Le contrat qui évite les malentendus entre front et back.
Pagination, filtres et erreurs
?page=2&limit=20, ?sort=-date, ?statut=disponible : rendre une collection exploitable. Et les erreurs structurées en problem+json (RFC 9457).
Protéger son API : les tokens
API key pour identifier une app, Bearer token pour un utilisateur, 401 vs 403 appliqués, et pourquoi une clé n'a rien à faire dans du JS client.
Construire une mini-API en PHP
Le capstone : /api/livres en PHP natif, routage sur la méthode, 201, 204, 422, problem+json. Plus OpenAPI pour documenter, et REST face à GraphQL et gRPC.
Ce que vous allez apprendre
Modéliser un domaine en ressources et URI propres : des noms, pas des verbes
Appliquer verbes et idempotence, et répondre avec le bon status code (201, 204, 422, 409)
Paginer, filtrer, trier une collection, et structurer les erreurs en problem+json (RFC 9457)
Sécuriser par token (API key, Bearer) et construire ta mini-API documentée en PHP natif
Prérequis : le cours HTTP (status codes, requête/réponse) et des bases PHP pour le capstone. Les labos sont simulés dans le navigateur : terminal curl, predict, quiz. Rien à installer.