Aller au contenu

GraphQL

GraphQL permet de demander des champs via un schéma d’API typé. Le serveur reste responsable de l’accès aux données et des droits.

API et contrats de données

Sélectionner les champs nécessaires dans une API

GraphQL est un langage de requête pour les API, accompagné de règles d’exécution côté serveur. Un schéma typé définit les données et les opérations proposées. L’application y sélectionne les champs nécessaires. GraphQL n’impose pas de base de données particulière.

Une entreprise de logiciels fictive prépare un portail client. La sélection { project(id: "P-42") { name } } demande le nom d’un projet si son propre schéma propose ces champs et cet argument. Cet exemple inventé n’est pas une requête envoyée à un service existant. L’implémentation du serveur doit obtenir les données et décider si la personne qui les demande peut les voir. Un appel conforme au schéma n’accorde aucun droit d’accès à lui seul ; le champ interne internalRate doit rester inaccessible aux clients, même s’ils le demandent explicitement.

Le portail doit donc définir les champs proposés et leurs règles d’accès. La sélection des champs répond aux besoins différents des vues ; les temps de réponse réels et le travail de la base de données doivent être examinés dans l’implémentation.

Sources