質問:ファイル間で Swagger 定義を分割するにはどうすればよいですか? その分野での可能性は何ですか?質問の詳細は次のとおりです。
私が欲しいものの例 - RAMLで
私はRAMLの経験があり、私がしていることは、たとえば次のとおりです。
/settings:
description: |
This resource defines application & components configuration
get:
is: [ includingCustomHeaders ]
description: |
Fetch entire configuration
responses:
200:
body:
example: !include samples/settings.json
schema: !include schemas/settings.json
ここで最後の 2 行が重要です - Theones with !include <filepath>
- RAML では、コントラクト全体を RAML パーサーによって動的に含まれる多くのファイルに分割できます (RAML パーサーは、RAML に基づくすべてのツールで使用されます)。
これによる私の利点は次のとおりです。
- スキーマがインライン化されていないため、コントラクトがより明確になり、保守が容易になります
- しかし、これは非常に重要です。他のツール内でスキーマ ファイルを再利用して、検証、モック生成、スタブ、テストの生成などを行うことができます。つまり、このようにして、コントラクト (RAML、この場合) と他のツール (非 RAML、非スワガー、JSONschema ベースのもののみ) の両方でスキーマ ファイルを再利用できます。
スワガーに戻る
私が読んだ限りでは、swagger は$ref
外部ファイルをロードできるキーワードをサポートしています。しかし、そのファイルは HTTP/AJAX を介して取得されたものですか、それとも単なるローカル ファイルでしょうか?
そして、それは仕様全体でサポートされていますか?それとも、それをサポートするツールとサポートしないツールだけですか?
ここで見つけたのは、swagger の入力は 1 つのファイルでなければならないということです。そして、これは大きなプロジェクトにとって非常に不便です:
- サイズのせいで
- また、闊歩でないものを使用したい場合、スキーマを再利用できないため
または、言い換えれば、ファイルを分割するという点で、RAMLでできるのと同じことをswaggerで達成できますか?