2017-12-05 6 views
0

例:基本パスは同じだが要求構造は異なる2 apisのスガーガースペックを定義するにはどうすればよいですか?

これは最初の定義である:

/** 
* @swagger 
* /a/b/items: 
* get: 
*  description: Get all the items 
*  responses: 
*  200: 
*   Returns an array of items 
*/ 

これが第二の定義です:

/** 
* @swagger 
* /a/b/items: 
* get: 
*  description: Get items by ids 
*  parameters: 
*  - name: ids 
*  in: query 
*  required: true 
*  schema: 
*   $ref: '#/definitions/itemIds' 
* 
*  responses: 
*  200: 
*   description: Returns an array of items, given the itemIds 
*/ 

ここでの違いは、リクエスト構造体である、ことは明らかです。 2番目の定義では、クエリでパラメータIDを渡したいと思います。

最初の定義は、任意のパスパラメータやクエリパラメータなしのシンプルなGETリクエストです。

2番目の定義は、同じベース・パスではなく、クエリのparamsとget要求です。私は連続してこれら二つを定義するとき

、2番目の定義は、以上の最初の1を書き込み、闊歩UIは二番目を示しています。

それはユニークなものとして、これら二つの定義を持つことが非常に望ましいです。一意性を達成するために

どれソリューション/思考/方法?

ドキュメントをサポートするようにapisを変更するだけでいいですか?

ご協力いただければ幸いです。 ありがとうございます!

+0

:クエリのparamと適切な説明のための偽のは、一時的なソリューションを提供します。 しかし、これらの2つの定義は2つの固有のエンドポイントであるため、2つの固有の定義を持つことが非常に望ましいです。 –

+0

OpenAPI/Swagger [サポートしません](https://stackoverflow.com/q/40495880/113116)パスは、クエリパラメータが異なるだけです。オプションのクエリパラメータを使用して単一のパスを持つことも、クエリパラメータの代わりにパスパラメータを使用するように2番目のパスを変更することもできます。他に方法はありません。 OpenAPIの仕様リポジトリ内 – Helen

+1

関連の提案:(https://github.com/OAI/OpenAPI-Specification/issues/123)[パスにクエリパラメータを可能にすることによって、レガシーAPIを受け入れる]、[パス仕様のクエリ文字列](HTTPS: //github.com/OAI/OpenAPI-Specification/issues/164) – Helen

答えて

0

私は第二の定義内のエンドポイントに変更する必要が信じている:最初の定義を削除し、必要に応じて第二の定義を持つ

/a/b/items/{ids}: 
+0

私がはっきりと述べたように、パラメータはクエリに含まれています。パスパラメータではありません。 回答を考えてくれてありがとう。 –

+2

OK、クエリのパラメータ、パスではありません。重複したエンドポイントを持つことはできないため、最初の定義を削除する方法と、2番目の定義を変更する方法が必要です。私はあなたが説明を変更する必要があることを知っているが、それは避けられないでしょう。 – Mike

+1

私はあなたが言っていることを見ることができます.. それは一時的な解決策を与えます。 しかし、これらの2つは別々の2つのapiであり、それぞれ固有の定義を持つことが望ましいです。あなたの提案は一時的な解決策を提供します。 –

関連する問題