1. Accueil
  2. Documents
  3. Documentation développeur
  4. API
  5. Bases de GraphQL

Bases de GraphQL

introduction

GraphQL est un langage de requête que nous utilisons pour notre API. L'avantage d'utiliser GraphQL par rapport aux autres méthodes est qu'il nous permet de ne demander que les données dont nous avons besoin. Toutes les demandes sont effectuées via un seul point de terminaison en envoyant une chaîne de requête avec des variables pour spécifier exactement les données requises.

Requêtes et mutations

Les demandes sont divisées en deux types: Requêtes et Les mutations. Par convention, des requêtes sont utilisées pour demander des données et des mutations sont utilisées pour écrire des données. Pour voir comment les requêtes et les mutations sont structurées, examinons un exemple de requête.

{utilisateur {xcoobee_id user_type first_name last_name}}

Dans cet exemple, nous interrogeons le champ utilisateur et demandons plusieurs types de données à l'utilisateur. Pour plus d'informations sur GraphQL, visitez la documentation ici.

XcooBee GraphQL

Certaines fonctionnalités de l'implémentation de notre GraphQL ne peuvent pas être trouvées dans la documentation générale. Voyons quelles sont ces fonctionnalités.

Curseurs

Les curseurs sont des références d'objet opaques qui peuvent être utilisées pour faire référence à des éléments tels que les abeilles, les utilisateurs et les transactions. Ceux-ci sont souvent utilisés pour la pagination.

Connexions

Nous utilisons une connexion lorsque nous voulons renvoyer autre chose qu'un seul objet. Par exemple, lorsque nous voulons renvoyer plusieurs utilisateurs à partir de la requête des utilisateurs, nous demandons le champ de données du userConnection avec les types de données dont nous avons besoin de ces utilisateurs. Nous pouvons également obtenir des informations de pagination à partir des connexions. le page_info champ renvoie un end_cursor et has_next_page.

Une end_cursor pointe vers l'objet final sur une page. Il peut être passé au paramètre after pour obtenir la page de données suivante.
Remarque: Ce curseur ne peut être utilisé que pour la pagination.

has_next_page vous permet de savoir s'il y a une autre page à demander.

Une connexion utilisateur peut également renvoyer le compte total qui vous permet de connaître le nombre total d'objets pouvant être renvoyés à partir d'une requête. Cela peut vous permettre de déterminer le nombre de pages sans avoir à vous fier has_next_page.

Exemple

Nous pouvons voir comment les curseurs et les connexions fonctionnent en regardant un exemple de requête qui utilise les deux.

requêtes balances ($user_cursor: String! $first: Int) {soldes (user_cursor: $user_cursor, first: $first) {data {type date date} page_info {has_next_page}}}

Dans cet exemple, nous utilisons user_cursor pour désigner l'utilisateur dont nous demandons les soldes.

Nous demandons le champ de données avec les champs que nous recherchons: type, devise, et Date. Nous demandons également des informations pour savoir s'il y a une autre page à récupérer.

Par exemple, si nous avons réussi 5 dans le premier argument, nous retournerions jusqu'à cinq soldes. Si un utilisateur avait quatre soldes, les quatre premiers soldes seraient retournés et has_next_page serait faux. Au lieu de cela, si un utilisateur avait six soldes, cinq soldes seraient retournés, et has_next_page retournerait vrai.

Cet article vous a-t-il été utile ? Oui 1 Non 2

Comment pouvons-nous aider ?