Obtenir la requête de schéma entier GraphQL
Je veux obtenir le schéma à partir du serveur.
Je peux obtenir toutes les entités avec les types, mais je ne suis pas en mesure d'obtenir les propriétés.
L'obtention de tous les types:
query {
__schema {
queryType {
fields {
name
type {
kind
ofType {
kind
name
}
}
}
}
}
}
Comment obtenir les propriétés de type:
__type(name: "Person") {
kind
name
fields {
name
type {
kind
name
description
}
}
}
Comment puis-je obtenir tous les types avec les propriétés que dans 1 demande? Ou encore mieux: Comment puis-je obtenir le schéma avec les mutateurs, les énumérations, les types ...
source d'informationauteur Aleksandrenko
Vous devez vous connecter pour publier un commentaire.
Mise à jour
À l'aide de
graphql-cli
est maintenant recommandée flux de travail pour obtenir et mettre à jour votre schéma.Les commandes suivantes vont vous aider à démarrer:
Vous pouvez même écouter pour les modifications de schéma et de mettre à jour en permanence votre schéma en cours d'exécution:
La façon la plus simple d'obtenir un GraphQL schéma est à l'aide de la CLI outil get-graphql-schéma.
Vous pouvez l'installer via NPM:
Il y a deux façons d'obtenir votre schéma. 1) GraphQL IDL format ou 2) JSON introspection format de la requête.
GraphQL IDL format
JSON introspection format
ou
Pour plus d'informations vous pouvez vous référer au tutoriel suivant: Comment télécharger de la GraphQL IDL Schéma
Vous pouvez utiliser GraphQL-JS introspection de requête pour obtenir tout ce que vous voulez savoir sur le schéma:
Si vous voulez juste l'information sur le type, vous pouvez utiliser ceci:
Qui utilise le fragment suivant de l'introspection requête:
Si cela semble compliqué, c'est parce que les champs peuvent être arbitrarility profondément enveloppé dans nonNulls et des Listes, ce qui signifie que, techniquement, même la requête ci-dessus ne reflète pas le schéma complet si tes champs sont enveloppés dans plus de 7 couches (qui n'est probablement pas le cas).
Vous pouvez voir le code source pour introspectionQuery ici.
C'est la requête qui GraphiQL utilise (capture réseau):
Si vous voulez le faire par vous-même, lisez ces code:
Il y a un système modulaire de l'état de l'art de l'outil "graphql-cli", pensez à la regarder. Il utilise le package "graphql"'s buildClientSchema de construire IDL .graphql fichier à partir des données d'introspection.