Introduction
GraphQL est une alternative aux API REST. Il est constitué d’un langage de requête et d’un environnement d’exécution. Il a été créé par Facebook en 2012, puis a été mis en open source en 2015. GraphQL
Pour rappel, voici les évolutions des façons d’appeler un traitement distant :
Année |
Protocole |
Explication |
1980 |
RPC |
Remote Procedure Call : appel système externe avec IDL (Interface Definition Language). |
1998 |
XML-RPC |
Utilisation de XML pour les échanges. |
2005 |
JSON-RPC |
Utilisation de JSON pour les échanges. |
1998→2009 |
SOAP (successeur de XML-RPC) |
Utilisation de XML pour les échanges avec un IDL : WSDL. |
2000 |
REST avec Verbes HTTP |
Le serveur choisit la représentation des données dans la réponse, REST sans IDL : Swagger puis OpenAPI. |
2007 |
FQL |
Facebook Query Language : GET /fql?q=<requête SELECT...>. |
2008 |
YQL |
Yahoo Query Language : GET /fql?q=<requête SELECT… avec jointures>, API de composition. |
2012 |
GraphQL |
Suit le protocole RPC en plus universel : avec fetch/mutation/subscription. |
GraphQL s’appuie sur des requêtes POST qui sont donc à mettre en cache du côté du client. Ces requêtes indiquent l’ordre et la sélection des champs à remonter du serveur. Le serveur définit le contrat d’échange via un schéma. Ce contrat spécifie comment lire et écrire...