Swagger Webサイト によると、2つのアプローチがあります。ボトムアップとトップダウンです。
Azure環境にデプロイする既存のNodeJSサーバーがあり、それはswaggerドキュメント(API APP)を必要とします。
コードを使用してswaggerを生成するツールを知っている人はいますか?チュートリアルを指すことができればさらに良いです。見つかりませんでした。
このチュートリアル に従って、Swaggerを既存のエクスプレスアプリケーションに統合することは難しくありません。
通常、次の手順を実行できます。
_package.json
_に依存関係を追加し、_npm install
_を実行してインストールします。依存関係は次のとおりです。
_"dependencies": {
"swagger-node-express": "~2.0",
"minimist": "*",
"body-parser": "1.9.x",
...
}
_
Swagger-UI のZipプロジェクトをダウンロードし、dist
フォルダーをプロジェクトのルートディレクトリにコピーします。ディレクトリは次のようになります。
_app.js
_の最初に依存関係を導入します。
_var argv = require('minimist')(process.argv.slice(2));
var swagger = require("swagger-node-express");
var bodyParser = require( 'body-parser' );
_
Swagger docのサブパスを設定します。
_var subpath = express();
app.use(bodyParser());
app.use("/v1", subpath);
swagger.setAppHandler(subpath);
_
_/dist
_がエクスプレスで静的ファイルを提供できることを確認します:app.use(express.static('dist'));
APIの情報を設定します。
_swagger.setApiInfo({
title: "example API",
description: "API to do something, manage something...",
termsOfServiceUrl: "",
contact: "[email protected]",
license: "",
licenseUrl: ""
});
_
Swagger UIに_/dist/index.html
_を導入:
_subpath.get('/', function (req, res) {
res.sendfile(__dirname + '/dist/index.html');
});
_
Swagger構成を完了します。
_swagger.configureSwaggerPaths('', 'api-docs', '');
var domain = 'localhost';
if(argv.domain !== undefined)
domain = argv.domain;
else
console.log('No --domain=xxx specified, taking default hostname "localhost".');
var applicationUrl = 'http://' + domain;
swagger.configure(applicationUrl, '1.0.0');
_
_/dist/index.html
_でドキュメントファイルの依存関係を構成します。
_if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
<del>url = "http://petstore.swagger.io/v2/swagger.json";</del>
url = "/api-docs.json";
}
_
APIの情報を含む_api-docs.json
_ファイルを作成し、dist
フォルダーに入れます。
ローカルでExpressアプリを実行し、_http://localhost:3000/v1
_にアクセスして、swagger docを確認できます。
参照用に テストサンプルリポジトリ を示します。
質問は少し古いですが、まだです。次のような分析ミドルウェアを埋め込むだけで、完全に自動的にSwagger(OpenAPI)仕様を生成できます。 https://github.com/mpashkovskiy/express-oas-generator
const express = require('express');
const expressOasGenerator = require('express-oas-generator');
let app = express();
expressOasGenerator.init(app, {});
クライアントを実行するかREST APIがサービスを再度テストし、開く http:// Host:port/api-docs
私の知る限り、オプションは次のとおりです。
オプション2に進むと、 swagger-ui-express を使用してswagger-uiを生成できます。