RESTを使用すると、Swagger、RAML、またはその他のテクノロジーを使用してAPIを文書化し、消費者がサーバーと対話することなく読むことができるHTMLドキュメントを生成できます。
GraphQLには似たようなものがありますか?リソースとプロパティのドキュメントを生成する方法はありますか?
今あるように見えます https://www.npmjs.com/package/graphql-docs
GraphQLスキーマ用の動的に生成されたドキュメントエクスプローラー。 GraphiQLよりもスキーマの概要を提供することを目的としていますが、クエリ機能はありません。
スキーマファイルまたはGraphQLエンドポイントに基づいて静的なドキュメントファイルを生成することもできます。
npm install -g graphql-docs
graphql-docs-gen http://GRAPHQL_ENDPOINT documentation.html
私の知る限り、GraphQL APIのHTMLドキュメントを自動的に生成するツールはまだありませんが、 GraphiQL は、私が見たHTMLのどのAPIドキュメントよりもさらに便利であることがわかりました。
GraphiQL を使用すると、GraphQLサーバーのスキーマをインタラクティブに探索し、同時にクエリを実行できます。構文の強調表示、オートコンプリートがあり、クエリが実行されずに無効な場合も通知されます。
静的なドキュメントを探しているなら、GraphQLスキーマ言語でスキーマを読むのが非常に便利だとわかりました。 GraphQLの別の優れた機能であるスキーマイントロスペクションのおかげで、アクセスできるサーバーのスキーマを簡単に印刷できます。サーバーに対して introspection query を実行し、結果のイントロスペクションスキーマをそのように出力します(graphql-jsを使用):
var graphql = require('graphql');
var introspectionSchema = {}; // paste schema here
console.log(graphql.printSchema(graphql.buildClientSchema(introspectionSchema)));
結果は次のようになります。
# 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
}
実際、GraphqlはFacebookの組み込みGraphiql
またはAltair
などのサードパーティツールを使用して非常に自己文書化されています。クエリ/突然変異がリストされ、戻り値の型も表示されるためです。
Docが必要だとわかった場所の1つは、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]
}
以下のようになります。
あなたがSphinx/ReadTheDocsユーザーなら、 https://github.com/hasura/sphinx-graphiql が役に立つかもしれません。