Swagger定義ファイル(JSONまたはYAMLファイルである必要があります)をエクスポートするにはどうすればよいですか?私はそのようなことを求められており、Swaggerについては大まかな知識しかありません。
http://example.com//swagger/ui/index#!
のようなエンドポイントがあります(スクリーンショットは実際のエンドポイントではありませんが、投稿できません)。
バージョンはapi version: v1
です。
表示できる[エクスポート]ボタンはありません。それで、どうやってそれをエクスポートしますか?
API定義のURLはSwagger UIのトップバーに表示されます-例では
/v2/api-docs?group=full-petstore-api
したがって、完全なURLは
http://localhost:8080/v2/api-docs?group=full-petstore-api
Swagger UIの新しいバージョンでは、多くの場合、API定義へのリンクがAPIタイトルの下に表示されるため、リンクを右クリックして[名前を付けて保存]を使用できます。
Swagger UIにAPI定義への可視リンクがない場合は、ページソースを表示し、次のようなurl
パラメーターを探します。
const ui = SwaggerUIBundle({
url: "https://petstore.swagger.io/v2/swagger.json", // <-------
dom_id: '#swagger-ui',
url
が表示されない場合、またはurl
がコード式である場合は、ブラウザーの開発ツールを開き、Networkタブに切り替えますキャッシュを無効にします。次に、ページを更新し、HTTP要求の中でAPI定義ファイル(swagger.json
、swagger.yaml
、api-docs
または類似のもの)を検索します。リストを絞り込むには、XHRでフィルタリングできます。
JSONは、特にSwaggerバージョン2.0向けに、ドキュメント内でインライン化することもできます。 @Helenの答えを歩いても何も見つからない場合は、これを試してみてください。
"swagger"
または"spec"
を検索します次のような<script type="application/json">
タグが表示されている場合、これは実質的にswagger.json
コンテンツです。 <script>
タグ内のすべてをコピーして、swagger.jsonという名前のファイルに保存すると、準備が整います。
<script id="swagger-data" type="application/json">
{"spec":{"definitions":{},"info":{},"paths":{},"schemes":[],"swagger":"2.0"}}
</script>
私はDjango Rest Frameworkを使用しています(そのためpip
package Django-rest-swagger==2.2.0
)。上記の答えは十分ではありませんでした。次の2つのオプションがありました。
1)開発者ツールを使用してページのソースを表示します。 http://localhost:8000/docs/
エンドポイントをヒットすると、次のように表示されます。
docs/
エンドポイントはDjangoで設定されているため、異なる場合があります。その詳細を掘り下げると、(Chromeの)[応答]タブに移動し、下にスクロールして実際のJSONを見つけることができます。 window.drsSpec
の値です
2) (https://github.com/marcgibbons/Django-rest-swagger/issues/59 で提案されているように、代替の(そしておそらくより簡単な)アプローチは、エンドポイントに?format=openapi
を追加することです=
これにより、必要なJSONが直接吐き出されます。 swagger
フィールドをopenapi
に変更してPostmanにインポートしましたが、これは少しハックのようですが、動作しましたか???????? ♂️
既に回答済みで正しいものですが、詳細なバージョンを投稿するつもりでした。これがお役に立てば幸いです。
リンク: https://editor.swagger.io/#
Swagger UIを開き、検査(Shift + Ctrl + i)、ページを更新すると、以下のようなタブが表示されます
XHRまたはNetworkタブの下のAllタブを選択し、ファイルapi-doc?group = *およびサブタブresponseをクリックします。 * ap-doc?group。**ファイルのコンテンツをコピーし、同じエディターリンクを使用してyamlファイルに変換します