--- title: API REST created: 2026-06-06 updated: 2026-06-06 type: concept tags: [tech, protocol, web] confidence: high contested: false sources: [synthesized] --- # 📡 API REST ## Définition Courte **REpresentational State Transfer** : style d'architecture pour les APIs web basé sur le protocole HTTP, les méthodes standard (GET, POST, PUT, DELETE) et des ressources identifiées par URL. ## Explication Détaillée REST a été défini par Roy Fielding en 2000. Les principes clés : - **Stateless** : chaque requête contient toute l'info nécessaire (pas de session serveur). - **Ressources** identifiées par URI (`/users/42`). - **Représentations** : JSON, XML, etc. (le plus souvent JSON aujourd'hui). - **Méthodes HTTP sémantiques** : GET (lecture), POST (création), PUT/PATCH (modif), DELETE (suppression). - **HATEOAS** (optionnel) : liens hypermédia dans les réponses. ## Cas d'Usage - APIs publiques (GitHub, Stripe, Twilio). - Communication frontend ↔ backend. - Microservices. ## Outils Liés - **Frameworks** : Express, FastAPI, Gin, Spring. - **Documentation** : OpenAPI / Swagger. - **Tests** : Postman, Insomnia, HTTPie. ## Pages Liées - [[concepts-web]] - [[graphql]] ## Questions Ouvertes - REST vs GraphQL : quel trade-off pour quel projet ? - Comment versionner une API REST proprement ?