35

作成した REST API の API ドキュメントを作成する必要があります。アンダースコア API ドキュメントとスタイルが似ている素敵な html 出力をスタブ化するツールはありますか? それとも、Twitter ブートストラップ スタイルの html として何かを出力するものでしょうか?

docco が注釈付きのコードを実行しているように見えますが、実際には API のみを文書化しようとしています。理想的には、ツールをコントローラー ファイルに向けて、メソッドとルートに関するドキュメントを生成するようにしたいのですが、具体的に例を挙げない限り、ソース コードは表示しません。

4

4 に答える 4

45

apiDocは、ソース コードの API 注釈からドキュメントを作成します。

統合されているのは API 履歴で、さまざまな API バージョン レベルを比較できます。そのため、前回のバージョン以降の API の変更点をたどることができます。

デモ: http://apidocjs.com/example

Github: https://github.com/apidoc/apidoc

于 2015-06-26T21:42:41.947 に答える
13

GithubのI/Oドキュメントを確認してください-http ://github.com/mashery/iodocs 。Node.jsでハッキングされており、コミュニティからの貢献や関与がたくさんあります。それが実際に機能していることを確認するには:

Uber Simple Configuration Schema(JSON)と、JSONですべてを手作業で記述したくない場合は、UIを使用してJSON構成をインポート/構築するためのWebベースのツールであるI /ODoctorを使用してください。

Githubのhttps://github.com/brandonmwest/iodoctorでも入手できます

私があなたが始めるのを手伝うことができるかどうか私に知らせてください。I/Oドキュメントリポジトリにはたくさんの設定例があります。気をつけて。

于 2012-08-22T00:24:09.233 に答える
6

最も人気のある RESTful API ドキュメント システムである I/O Docs または Swagger。RAMLApiaryもあります。

于 2014-01-18T21:14:02.317 に答える
2

test2doc.jsは、テスト/仕様から API ドキュメントを生成するのに役立ちます。そのため、実際のリクエスト/レスポンス データが取り込まれた、最新の最新の API ドキュメントをいつでも取得できます。

テスト コードの例:

const doc = require('test2doc')
const request = require('supertest') // We use supertest as the HTTP request library
require('should') // and use should as the assertion library

// For Koa, you should exports app.listen() or app.callback() in your app entry
const app = require('./my-express-app.js')

after(function () {
  doc.emit('api-documentation.apib')
})

doc.group('Products').is(doc => {
  describe('#Products', function () {
    doc.action('Get all products').is(doc => {
      it('should get all products', function () {
        // Write specs towards your API endpoint as you would normally do
        // Just decorate with some utility methods
        return request(app)
          .get(doc.get('/products'))
          .query(doc.query({
            minPrice: doc.val(10, 'Only products of which price >= this value should be returned')
          }))
          .expect(200)
          .then(res => {
            body = doc.resBody(res.body)
            body.desc('List of all products')
              .should.not.be.empty()
            body[0].should.have.properties('id', 'name', 'price')
            body[0].price.desc('Price of this product').should.be.a.Number
          })
      })
    })
  })
})
于 2017-03-04T21:29:41.727 に答える