🌐
developpement

REST

Style d'architecture pour les API web basées sur HTTP et les ressources.

Qu'est-ce que REST ?

REST (Representational State Transfer) est un style d'architecture pour la conception d'API web, défini par Roy Fielding dans sa these de doctorat en 2000. Ce n'est pas un protocole mais un ensemble de contraintes architecturales. Les API conformes à ces contraintes sont dites "RESTful". REST est devenu le standard de facto pour les API web, utilise par la majorité des services en ligne.

Les six contraintes REST

REST définit six contraintes : Client-serveur (séparation des responsabilités front-end/back-end), Stateless (chaque requête contient toute l'information nécessaire, le serveur ne garde pas d'état de session), Cacheable (les réponses indiquent si elles peuvent être mises en cache), Interface uniforme (identification des ressources par URI, manipulation via representations, messages auto-descriptifs, HATEOAS), Système en couches (le client ne sait pas s'il parle au serveur final ou à un intermédiaire), et Code à la demande (optionnel, envoi de code exécutable).

Conception d'une API RESTful

Les ressources sont identifiées par des noms pluriels dans les URL : /users, /users/123, /users/123/orders. Les méthodes HTTP définissent les actions : GET (lire), POST (créer), PUT (remplacer), PATCH (modifier partiellement), DELETE (supprimer). Les codes de statut HTTP communiquent le résultat : 200 (OK), 201 (Created), 204 (No Content), 400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 422 (Unprocessable Entity), 500 (Internal Server Error). Les réponses sont généralement en JSON.

Bonnes pratiques

Les bonnes pratiques incluent : la pagination des collections (cursor-based ou offset), le filtrage et le tri via les query parameters, le versioning de l'API (/v1/ ou via header), la documentation avec OpenAPI/Swagger, l'authentification par OAuth 2.0 ou JWT, le rate limiting avec les headers standards (X-RateLimit-*), et la gestion des erreurs avec un format standardise (RFC 7807 Problem Détails).

REST vs alternatives

GraphQL résout le sur-fetching et sous-fetching de REST mais ajoute de la complexité. gRPC utilise Protocol Buffers pour des communications haute performance entre microservices. WebSocket fournit une communication bidirectionnelle en temps réel. En pratique, REST reste le choix par défaut pour les API publiques grâce à sa simplicité, son ubiquite et l'excellent support du cache HTTP. Les architectures modernes combinent souvent plusieurs approches selon les besoins.

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions fréquentes

REST est-il encore pertinent avec GraphQL ?
Oui, REST reste le standard pour la majorite des API. GraphQL est plus adapte aux cas complexes avec des besoins de donnees variables.

Pages liées

Chaque semaine, le meilleur de la tech française

Tendances, salaires, outils et opportunités — directement dans votre boîte mail.

Gratuit. Desabonnement en un clic. Pas de spam.