私はいつも、ノードサイドサービスを適切なドキュメントを使用して他のチームと共有していました。このドキュメントに基づいて、彼らは私のサービスを使用します。
これに関して、私が他の人と話したとき。彼は私にswagger
を使うように提案しました。しかし、アプリケーションに統合する方法がわかりません。
私のアプリケーションはExpress
で書かれています。私はグーグルでこれを検索しました、私は良いチュートリアルを見つけられませんでした。誰かがすでに実装している場合は、私に提案できますか。どのモジュールがどのように優れているか。
また、知りたいのは、swagger
プラットフォームをサポートするNode
のような他のライブラリです。
ありがとう
Expressモジュールを使用してExpressAPIを文書化した経験があります(swagger-node-express
)。また、手動のSwaggerJSONドキュメントを使用してExpressAPIを文書化した経験もあります。
Swaggerドキュメントのモジュールに縛られないことをお勧めします。ほとんどのモジュール(特にswagger-node-express)では、ドキュメントを処理するためにExpressコードを別の方法で記述する必要があります。 JSONを使用してSwaggerドキュメントを手動で作成する場合、Expressを作成し、ドキュメントをルーティングから切り離すことができます。
Swagger UI を使用して、ドキュメントのスタイルを設定し、Webページに追加します。
開始時に使用できるリソースは次のとおりです。
Swagger Editor --Swaggerドキュメントを編集して、変更をライブアップデートで確認します
Swagger Docs -JSONのSwagger仕様
チュートリアル -これは古いバージョンのSwaggerを使用しています。必ずチェックしてください Migrating Swagger 最新バージョンにアップグレードしてください
また、手動とモジュールベースのSwaggerドキュメント生成の違いを説明するこの回答を見てください-> [〜#〜] here [〜#〜] 。
最近、swaggerを使用してAPIドキュメントを実装することに遭遇しました。 「swagger-ui-express」npmモジュールを使用して実装しました。実行時にJSONを作成しました。つまり、サーバーの実行が開始されたら、データをキャプチャし、以下のファイルのようなSwagger仕様に従って変更しました。
https://editor.swagger.io/ ここでは、JSONでSwaggerの仕様を確認できます。
「swagger-ui-express」モジュールが必要で、JSONを作成し、以下のようにファイルをswaggeruiにフィードします。
const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
私はあなたの質問が完全には明確ではありませんが、あなたはこのようなものを探していると思います: swagger-tools
私はこのモジュールを使用し、それは素晴らしかったです。作成したExpressapp
にバインドできるミドルウェアを公開します。たとえば、サービスが文書化されていて、その文書が Swagger準拠 である場合、その文書をミドルウェアに渡すことができます。ミドルウェアは、ドキュメントにある定義に基づいてリクエストハンドラを接続したり、ドキュメントにある定義に対してリクエストを検証したりするなど、いくつかのすばらしいことを行います。
それは素晴らしい チュートリアル を持っており、セットアップを取得するのは非常に簡単です。これがお役に立てば幸いです。あなたが探していたものに沿ったものです。
Expressアプリでライブドキュメントが自動的に提供されるため、このようなスワッガーを使用します。
次に、ドキュメントを配置するルートを作成するだけです。
const swaggerSpec = swaggerJSDoc({
swaggerDefinition: {
info: {
title: 'My App API',
version: '1.0.0'
}
},
apis: ['./routes/index.js']
});
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
swagger-ui-expresshanの組み込みサポートswagger-jsdocをご覧ください-)。詳細については、 swagger-ui-express および swagger-jsdocs入門ドキュメント をお読みください。
swagger-jsdocs入門ドキュメント から取得。
/**
* @swagger
* /login:
* post:
* description: Login to the application
* produces:
* - application/json
* parameters:
* - name: username
* description: Username to use for login.
* in: formData
* required: true
* type: string
* - name: password
* description: User's password.
* in: formData
* required: true
* type: string
* responses:
* 200:
* description: login
*/
app.post('/login', function(req, res) {
res.json(req.body);
});
それらはほとんど Swagger UIの例 のようになります。