41 lines
1.3 KiB
Markdown
41 lines
1.3 KiB
Markdown
---
|
|
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 ?
|