2016-09-15 52 views
13

通過REST,我們可以使用Swagger,RAML或其他技術來記錄我們的API並生成一個HTML文檔,供消費者閱讀,而無需與服務器進行交互。記錄一個GraphQL API

是否有類似於GraphQL的東西存在?有什麼方法可以生成資源和屬性的文檔?

回答

12

它看起來像有現在https://www.npmjs.com/package/graphql-docs

動態生成的GraphQL模式文檔資源管理器。它旨在提供一個比GraphiQL更好的架構概覽,但不查詢功能。

enter image description here

您也可以基於模式文件或GraphQL端點的靜態文檔文件:

npm install -g graphql-docs 
graphql-docs-gen http://GRAPHQL_ENDPOINT documentation.html 
3

據我所知,目前還沒有工具可以自動生成GraphQL API的HTML文檔,但我發現GraphiQL比我見過的任何HTML文檔都更有用。

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 
} 
+1

謝謝,helfer。 使用API​​作爲文檔的警告是,有時開發人員在訪問之前需要它。例如:決定購買一些API服務時。 你提供了一個很好的選擇,這個警告。感謝您的有用答案。如果沒有更好的來,我會稍微等一下,並將其標記爲已接受。 –