Nous recrutons: Tu es un IT qui souhaite travailler en Node, Python, Serverless et Cloud dans l'IA ?

Blog

Group 4

GraphQL, Le prochain Restful

Nouvelle Technologie

GraphQL, Le prochain Restful

GraphQL est un langage de requête créé par Facebook en 2012 qui fournit une interface commune entre le client et le serveur pour le chargement des données.

Le client demande diverses données à partir du serveur GraphQL via des requêtes. Le format de réponse est décrite dans la requête et définie par le client au lieu du serveur: ils sont appelés des requêtes spécifiées par le client.

API et architecture orienté client

La structure des données n’est pas encodé comme dans les API REST traditionnels – ce qui rend la récupération de données à partir du serveur plus efficace pour le client. Par exemple, le client peut demander des ressources liées sans définir de nouveaux critères d’évaluation de l’API.

Une structure des l’API sur GraphQL orientée client et apportant des solutions flexibles.

QL Vs RestFul

{
  user(id: 1) {
    name
    age
    friends {
      name
    }
  }
}

Dans une API REST basée sur des ressources, il ressemblerait à quelque chose comme:

GET /users/1 and GET /users/1/friends  
 ou
GET /users/1?include=friends.name  

GraphQL n’est pas un langage spécifique

Il est important de mentionner que GraphQL n’est pas un langage spécifique, il est juste un cahier des charges entre le client et le serveur. Tout client doit être en mesure de communiquer avec un serveur si iles parlent la langue commune: GraphQL.

Les concepts clés de la GraphQL langage de requête sont les suivants :

  • Hiérarchique
  • Produit-centric
  • Typage fort
  • requêtes client spécifié
  • Introspectif

Pour plus de détails sur le concept de GraphQL consulter la spécification GraphQL .

Où est-il utile?

GraphQL aide votre client afin d’avoir une réponse flexible pour éviter les requêtes supplémentaires et/ou des transformations massives de données.

L’utilisation d’un serveur GraphQL rend très facile le développement côté client afin de modifier le format de réponse sans aucune modification sur le backend.

Avec GraphQL, vous pouvez décrire les données requises d’une manière plus naturelle. Il peut accélérer le développement, parce que dans les structures d’application comme top-down rendu dans React, les données requises est plus proche de votre structure composant.

Différences avec REST

Les API REST sont basés sur des ressources. Fondamentalement, ce que vous faites est que vous vous adressez à vos ressources comme GET /users/1/friends, qui est un chemin unique. Il vous indique très bien que vous êtes à la recherche des amis de l’utilisateur id=1.

Les avantages de REST API sont qu’ils sont cacheable, et leurs comportements sont évidents.

L’inconvénient est qu’il est difficile de préciser et de mettre en œuvre des demandes avancées, excluant et en particulier avec des ressources liées.

Je pense que vous avez déjà vu des demandes similaires:
GET /users/1/friends/1/dogs/1?include=user.name,dog.age

Ceci est exactement le problème que GraphQL veut résoudre.

  • obtenir les noms des chiens des amis de l’utilisateur id=1🙂
{
 user(id: 1) {
   friends {
     dogs {
       name
     }
   }
 }
}

Simple à mettre en œuvre !

En réflexion chez Young App Lab

Young App, possède deux entités, Young App Studio pour traiter des demandes récurrentes des entreprises en apportant des solutions personnalisées et adaptées à leurs besoins. Young App Lab travaillant sur des projets innovants en matière de nouvelles technologies.

Cette nouvelle approche est vue d’un très bon oeil, elle répond à des besoins modernes en matière de requêtes client/server. RestFul peut devenir complexe quand les demandes côté client deviennent compliquées à réaliser d’un coup, nécessitant plusieurs demandes simultanées.

Young App est toujours tourné vers l’avenir.