Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les points de terminaison GraphQL dans le Générateur d’API de données (DAB) vous permettent d’interroger et de modifier des données avec précision. Chaque requête déclare exactement les champs dont vous avez besoin et prend en charge les arguments pour le filtrage, l’ordre et la pagination des résultats.
Par défaut, DAB héberge son point de terminaison GraphQL sur :
https://{base_url}/graphql
Les entités exposées via la configuration sont automatiquement incluses dans le schéma GraphQL.
Par exemple, si vous avez les entités books et authors, les deux apparaissent en tant que champs racines dans le schéma.
Remarque
Utilisez n’importe quel client GraphQL moderne ou IDE (comme Apollo, Insomnie ou VS Code GraphQL) pour explorer les champs de schéma et de saisie semi-automatique.
Mots clés pris en charge dans le générateur d’API de données
| Concept | GraphQL | Objectif |
|---|---|---|
| Projection | Éléments | Choisir les champs à retourner |
| Filtrage | filtre | Restreindre les lignes par condition |
| Tri | orderBy | Définir l’ordre de tri |
| Taille de la page | first | Limiter les éléments par page |
| Suite | après | Continuer à partir de la dernière page |
Structure de base
Chaque requête GraphQL commence par un champ racine qui représente une entité.
{
books {
items {
id
title
price
}
}
}
Le résultat est un objet JSON avec la même forme que votre jeu de sélection :
{
"data": {
"books": {
"items": [
{ "id": 1, "title": "Dune", "price": 20 },
{ "id": 2, "title": "Foundation", "price": 18 }
]
}
}
}
Remarque
Par défaut, DAB retourne jusqu’à 100 éléments par requête, sauf configuration contraire (runtime.pagination.default-page-size).
Types de requêtes
Chaque entité prend en charge deux requêtes racines standard :
| Query | Descriptif |
|---|---|
entity_by_pk |
Retourne un enregistrement par sa clé primaire |
entities |
Retourne une liste d’enregistrements qui correspondent aux filtres |
Exemple de retour d’un enregistrement :
{
book_by_pk(id: 1010) {
title
year
}
}
Exemple renvoyant plusieurs éléments :
{
books {
items {
id
title
}
}
}
Filtrage des résultats
Utilisez l’argument filter pour restreindre les enregistrements retournés.
{
books(filter: { title: { contains: "Foundation" } }) {
items { id title }
}
}
Cette requête retourne tous les livres dont le titre contient « Foundation ».
Les filtres peuvent combiner des comparaisons avec des opérateurs logiques :
{
authors(filter: {
or: [
{ first_name: { eq: "Isaac" } }
{ last_name: { eq: "Asimov" } }
]
}) {
items { first_name last_name }
}
}
Consultez la référence d’argument de filtre pour les opérateurs pris en charge tels que eq, neq, lt, lte et isNull.
Tri des résultats
L’argument orderBy définit la façon dont les enregistrements sont triés.
{
books(orderBy: { year: DESC, title: ASC }) {
items { id title year }
}
}
Cela classe les livres par year décroissant, puis par title.
Pour plus d’informations, consultez la référence de l’argument orderBy .
Limitation des résultats
L’argument first limite le nombre d’enregistrements retournés dans une seule requête.
{
books(first: 5) {
items { id title }
}
}
Cela retourne les cinq premiers livres, classés par clé primaire par défaut.
Vous pouvez également utiliser first: -1 pour demander la taille de page maximale configurée.
Apprenez-en davantage dans la première référence d’argument.
Résultats continus
Pour extraire la page suivante, utilisez l’argument after avec le curseur de la requête précédente.
{
books(first: 5, after: "eyJpZCI6NX0=") {
items { id title }
}
}
Le after jeton marque l’endroit où la page précédente s’est terminée.
Pour plus d’informations, consultez après la référence de l'argument .
Sélection de champ (projection)
Dans GraphQL, vous choisissez exactement les champs qui apparaissent dans la réponse.
Il n’y a pas de caractère générique comme SELECT *. Demandez uniquement ce dont vous avez besoin.
{
books {
items { id title price }
}
}
Vous pouvez également utiliser des alias pour renommer des champs dans la réponse :
{
books {
items {
bookTitle: title
cost: price
}
}
}
Pour plus d’informations, consultez la référence de projection de champ .