---
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 ?
