Documenter une API GraphQL

avec REST, nous pouvons utiliser Swagger, RAML ou d'autres technologies pour documenter notre API et générer une documentation HTML que nos consommateurs peuvent lire sans aucune interaction avec les serveurs.

Existe-t-il quelque chose de similaire pour GraphQL? Est-il possible de générer une documentation des ressources et des biens?

21
demandé sur Francisco Canela 2016-09-15 10:10:34

4 réponses

on dirait qu'il y a maintenant https://www.npmjs.com/package/graphql-docs

Dynamiquement des documents générés par l'explorateur pour GraphQL schémas. Il vise à fournir une meilleure vue d'ensemble d'un schéma que GraphiQL, mais sans poser de questions.

enter image description here

Vous pouvez également générer un fichier de documentation statique basé sur un fichier schema ou un paramètre GraphQL:

npm install -g graphql-docs
graphql-docs-gen http://GRAPHQL_ENDPOINT documentation.html
16
répondu jun 2017-03-03 10:01:35

a ma connaissance, il n'existe pas encore d'outil qui génère automatiquement de la documentation HTML pour une API GraphQL, mais j'ai trouvé GraphiQL pour être encore plus utile que toute la documentation de l'API dans le code HTML que j'ai vu.

GraphiQL vous permet d'explorer de façon interactive le schéma D'un serveur GraphQL et de lancer des requêtes contre celui-ci en même temps. Il a la mise en évidence de la syntaxe, autocomplet, et il vous dit Même quand votre requête est invalide sans exécuter il.

si vous cherchez de la documentation statique, Je l'ai trouvé assez commode pour lire le schéma dans le langage de schéma de GraphQL. Grâce à une autre grande fonctionnalité de GraphQL - schema introspection - vous pouvez facilement imprimer le schéma pour n'importe quel serveur auquel vous avez accès. Il suffit de lancer l' requête d'introspection contre le serveur et ensuite imprimer le schéma d'introspection comme so (en utilisant graphql-js):

var graphql = require('graphql');
var introspectionSchema = {}; // paste schema here
console.log(graphql.printSchema(graphql.buildClientSchema(introspectionSchema)));

Le résultat ressemblera à quelque chose comme ceci:

# An author
type Author {
  id: ID!

  # First and last name of the author
  name: String
}

# The schema's root query type
type Query {

  # Find an author by name (must match exactly)
  author(name: String!): Author
}
10
répondu helfer 2016-09-15 07:43:44

j'ai trouvé un générateur de page statique pour documenter le schéma GraphQL. GitHub link.

l'exportation HTML ressemble à ceci.

Github GraphQL doc example

7
répondu Zdeněk Dušátko 2017-06-06 00:18:04

en fait, Graphql est assez auto-documenté avec Facebook intégré Graphiql ou l'outil tiers comme Altair parce que les requêtes/mutations sont listées et que les types de retour y sont aussi affichés.

un endroit où j'ai trouvé need doc est le paramètre de requête d'entrée qui pourrait requérir specific format. Ceci peut être réalisé en ajoutant un commentaire en plus de ceux arguments.

  type Query {
      eventSearch(
        # comma separated location IDs. (eg: '5,12,27')
        locationIds: String,
        # Date Time should be ISO 8601: 'YYYY-DD-MM HH:mm:ss'. (eg: '2018-04-23 00:00:00')
        startDateTime: String!,
        endDateTime: String!): [Event]
  }

Ce sera comme ci-dessous:

Graphiql:

Graphiql

Altair:

Altair

2
répondu Leon li 2018-04-24 15:46:52