web-dev-qa-db-ja.com

Swagger Sails JS

swagger、swagger-uiをsails jsプロジェクトと統合する方法についてのアイデアはありますか?

それに関する情報、または帆で生成されたAPIにコメントする別の方法に関する情報はどこにありますか?

ありがとう!

16
wchopite

1週間ほど前に解決策を探していましたが、情報が少し散らばっていました。これが、swaggerとswagger-uiをsails0.11.xプロジェクトと統合した方法です。

1.帆を取り付ける-スワッガー

npm install --save sails-swagger

これにより、Swaggerドキュメントを動的に生成するフックが提供されます。残念ながら、sails 0.12.x(この投稿の時点ではrc)とのみ互換性があります。したがって、0.11.xで動作させるには、SwaggerControllerを拡張し、config/installdHooks.jsのフックの名前を上書きする必要があります( 問題参照

api/controllers/SwaggerController.js

'use strict';

/**
 * This is a temp fix while one sails 11.x
 * @see https://github.com/tjwebb/sails-swagger/issues/3
 */
var _ = require('lodash');
var _super = require('sails-swagger/dist/api/controllers/SwaggerController');

_.merge(exports, _super);
_.merge(exports, {
  _config: {
    actions: false,
    shortcuts: false,
    rest: false
  }
});

config/installedHooks.js

'use strict';

/**
 * This is a temp fix while one sails 11.x
 * @see https://github.com/tjwebb/sails-swagger/issues/3
 */
module.exports.installedHooks = {
  'sails-swagger': {
    'name': 'swagger'
  }
};

最後に、ドキュメントごとにフックの構成を提供します

config/swagger.js

'use strict';

module.exports.swagger = {
  /**
   * require() the package.json file for your Sails app.
   */
  pkg: require('../package')
};

2.swagger-uiをインストールします

npm install --save-dev swagger-ui@2

これを処理する方法はいくつかあります。 Vanilla swagger-uiモジュールを使用して、そのdist内のすべてをビルドプロセスに追加できます。しかし、インターフェイスを少しカスタマイズするつもりなので、プロジェクトにコピーすることにしました。

mkdir assets/docs
cp -r node_modules/swagger-ui/dist/* assets/docs/

注(2017年3月26日):swagger-uiv3.xはReact(yay!))を使用して再構築されましたが、現時点では簡単に帆と統合することはできません。

3.swagger-uiを構成します

最後に、動的に生成されたswaggerドキュメントをswagger-uiにポイントする必要があります。 swaggerドキュメントのデフォルトルートは /swagger/doc であるため、swagger-ui構成で明示的に設定できます。

assets/docs/index.html

<script type="text/javascript">
    $(function () {
      var url = '/swagger/doc';

      // Pre load translate...
      if(window.SwaggerTranslator) {
        window.SwaggerTranslator.translate();
      }
      window.swaggerUi = new SwaggerUi({
        url: url,
        // ...removed for brevity
</script>

4.利益

これで、ブラウザで/docsに移動して、美しいドキュメントを見ることができます。

sails-swagger-ui

31
grocky

swagger-ui を使用して解決策を見つけました。 assetssailsフォルダーにdocsというフォルダーを作成し、swagger-uiコンテンツをそこに入れ、swagger.jsonファイルを編集します。それから、帆を持ち上げました。ドキュメントは http:// ip_address:1337/docs で利用できるようになりました。帆v-0.11.0を使用しています

4
wchopite

ドキュメントを自動的に生成するという点では、このライブラリをチェックして、問題をより適切に解決し、コントローラーとルートからswagger.jsonファイルを自動的に生成すると思います。

npm install sails-hook-swagger-generator --save

次に、単にsails liftを実行し、sails liftを実行する前に作成しておく必要があるswaggerフォルダーを確認します。

構成の詳細については、リポジトリを表示できます ここ

インストール

$ npm install sails-swagger --save

構成

    // config/swagger.js
module.exports.swagger = {
  /**
   * require() the package.json file for your Sails app.
   */
  pkg: require('../package'),
  ui: {
    url: 'http://swagger.balderdash.io'
  }
};

Swaggerをインストールして構成した後、ドキュメントの出力は/swagger/docルートにあります。

0
Nitheesh K P