Fra*_*ela 49 graphql graphql-js
使用REST,我们可以使用Swagger,RAML或其他技术来记录我们的API并生成HTML文档,我们的消费者可以在不需要与服务器交互的情况下阅读这些文档.
为GraphQL做一些类似的事情吗?有没有办法生成资源和属性的文档?
jun*_*jun 27
看起来现在有https://www.npmjs.com/package/graphql-docs
动态生成的GraphQL架构文档资源管理器.它旨在提供比GraphiQL更好的模式概述,但不需要查询功能.
您还可以基于模式文件或GraphQL端点生成静态文档文件:
npm install -g graphql-docs
graphql-docs-gen http://GRAPHQL_ENDPOINT documentation.html
Run Code Online (Sandbox Code Playgroud)
hel*_*fer 15
据我所知,还没有为GraphQL API自动生成HTML文档的工具,但我发现GraphiQL比我见过的HTML中的任何API文档都更有用.
GraphiQL允许您以交互方式探索GraphQL服务器的模式,并同时对其运行查询.它具有语法高亮,自动完成功能,甚至可以在不执行查询的情况下告诉您查询何时无效.
如果您正在寻找静态文档,我发现用GraphQL模式语言读取模式非常方便.由于GraphQL的另一个重要功能 - 模式内省 - 您可以轻松地为您有权访问的任何服务器打印模式.只需对服务器运行内省查询,然后像这样打印生成的内省模式(使用graphql-js):
var graphql = require('graphql');
var introspectionSchema = {}; // paste schema here
console.log(graphql.printSchema(graphql.buildClientSchema(introspectionSchema)));
Run Code Online (Sandbox Code Playgroud)
结果将如下所示:
# 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
}
Run Code Online (Sandbox Code Playgroud)
实际上,Graphql完全是用Facebook的内置Graphiql工具或第三方工具自记录的,例如Altair因为列出了查询/突变,并且在那里还显示了返回类型,所以它很容易记录。
我发现需要doc的地方之一可能是需要的输入查询参数specific format。这可以通过在这些注释的顶部添加注释来实现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]
}
Run Code Online (Sandbox Code Playgroud)
它将如下所示:


| 归档时间: |
|
| 查看次数: |
22808 次 |
| 最近记录: |