La hype GraphQL a fait long feu. En 2026 la réalité est nuancée : REST reste la bonne réponse dans 70 % des cas, GraphQL brille dans les 30 % restants. Voici ma grille.
REST : ce qui marche toujours
- Simplicité absolue pour les consommateurs.
- Caching HTTP natif (ETag, Cache-Control) pour des perfs gratuites.
- Outillage universel : Postman, curl, Swagger, monitoring standard.
- Pagination, filtrage, tri : conventions connues.
Avec Laravel Resource ou API Platform côté Symfony, générer une API REST documentée, versionnée, validée prend 1-2 jours. C'est le baseline.
GraphQL : quand c'est pertinent
- Clients multiples avec besoins divergents (web + mobile + partenaires B2B).
- Profils de données très variables selon les écrans.
- Éviter l'over-fetching sur des objets imbriqués profonds.
- Équipe front qui doit itérer sans attendre des changements backend.
Pour PHP : API Platform supporte GraphQL natif, Lighthouse côté Laravel. Les deux sont matures en 2026.
Les pièges GraphQL
- N+1 partout : sans DataLoader bien configuré, chaque résolveur requête. Cauchemar.
- Sécurité complexifiée : authorization par champ, limite de profondeur, query cost analysis obligatoires.
- Caching pénible : bye bye cache HTTP, bonjour cache applicatif à maintenir.
- Introspection = surface d'attaque : en prod, désactivez-la.
Le faux argument contre REST
"Over-fetching" : souvent exagéré. Un endpoint REST bien conçu avec ?fields=id,name ou ?include=author (style JSON:API) résout 80 % des cas de surfetch sans passer à GraphQL.
Hybride ? OUI.
Pattern qui marche bien :
- REST pour le CRUD standard et les endpoints publics partenaires.
- GraphQL pour le BFF (Backend For Frontend) spécifique à votre app.
- gRPC pour la communication interne entre microservices (oui, gRPC, pas GraphQL).
Ma recommandation par type de projet
- SaaS B2B classique : REST.
- App mobile + web avec besoins divergents : REST + quelques endpoints "fat" spécialisés, ou GraphQL.
- Plateforme avec 20+ clients tiers : REST avec OpenAPI solide.
- App interne avec équipe front très mature : GraphQL peut être gagnant.
Le débat 2026 : tRPC
Pour les équipes TypeScript full-stack, tRPC rend REST et GraphQL presque obsolètes. En PHP, pas d'équivalent direct, mais les APIs typées via OpenAPI + codegen client s'en approchent.