OpenAPI 2 から 3 へのコンバーター
ガイド
OpenAPI 2 から 3 へのコンバーター
Swagger 2.0 のスペックを貼り付け、JSON または YAML 形式で有効な OpenAPI 3.0.3 バージョンを返します。コンバーターは公式な構造マッピングルールを適用— definitions under components/schemas、 host, basePathと、 schemes の中へ serversを収縮し、 consumes と produces を各操作に分離し、フォームパラメータとセキュリティ定義を再構成—現代の OpenAPI ツールで動作するようになります。 content Swagger 2.0 スペックを入力ボックスに貼り付けます。JSON および YAML はどちらも受け入れ可能で、形式は自動検出されます。
使用方法
- 出力フォーマットを選択:入力フォーマットを維持するか、JSON または YAML に強制します。
- 必須フィールドを補完
- 離脱 を自動で埋め込み、v3 の必須フィールド( など)および v2 のソースが省略した応答説明を補完します。
info.title,info.version変換の要約および出力の上部に表示される警告を確認し、結果の OpenAPI 3.0.3 スペックをコピーまたはダウンロードします。 - JSON および YAML 入力、JSON または YAML 出力
機能
- — 好みのフォーマットを選択するか、入力と同じフォーマットを維持します。 構造マッピング
- は —
definitions→components/schemas,securityDefinitions→components/securitySchemes,parameters/responsesの下に引き上げられ、すべてのcomponentsポインタは再構成され、一致するようになります。$refホスト、basePath、スキームからサーバー - — これらは v3 の 配列に統合され、複数のスキームがある場合、HTTPS が優先されます。
serversコンテンツネゴテイション - は各操作に分離された —
consumesとproducesマップに変換されます。requestBody.contentとresponses[*].contentボディおよびフォームパラメータ - は v3 の —
in: bodyフィールドに変換され、すべてのrequestBodyと、in: formDataはリクエストボディスキーマにグループ化されます。multipart/form-dataまたはapplication/x-www-form-urlencodedセキュリティフローのアップグレード - — OAuth2 値は v3 の
flowオブジェクト(flowsパッチモードimplicit,password,clientCredentials,authorizationCode). - — 有効にすると、出力が v3 バリデーターを通過するように必須フィールドを補完し、v2 ソースの小さな欠陥による失敗を回避します。 変換要約および警告
- — 変換されたパス、スキーマ、セキュリティスキームの数、1 対 1 にマッピングできないものに対する警告を表示します。 — あなたのスペックはページを離れないでください。
- ブラウザ内で完全に動作 Swagger 2.0 と OpenAPI 3.0 の間で構造的に何が変わったか?
よくある質問
-
OpenAPI 3.0 は再利用可能な要素を1つの
オブジェクトに再組織しました:
componentsはdefinitionsになりました。トランスポート面も変更されました:components/schemas,parametersになりました。トランスポート面も変更されました:components/parameters,responsesになりました。トランスポート面も変更されました:components/responsesと、securityDefinitionsになりました。トランスポート面も変更されました:components/securitySchemesは、フルベースURLのhost,basePathと、schemes配列に統合され、暗黙的なservers配列は各リクエストボディおよび応答にメディアタイプでキーをもつconsumesとproducesマップに置き換えられました。contentOpenAPI 3.0 では、リクエストボディに新しい形状が必要な理由は何ですか? -
Swagger 2.0 では、リクエストボディは単なるパラメータで、
でした。フォームフィールドはパラメータで、
in: bodyでした。これは2つの異なる関心(パス/クエリ/ヘッダーパラメータとリクエストペイロード)を1つのリストにまとめて、コンテンツタイプネゴテイションを困難にしました。OpenAPI 3.0 ではそれらを分離しました:パラメータはパス、クエリ、ヘッダー、およびクッキーにのみ使用され、ペイロードはトップレベルのin: formDataマップに移動します。これにより、1つのエンドポイントが異なるスキーマでrequestBodyで包まれており、contentを受け入れるようになります。application/json,multipart/form-dataと、application/x-www-form-urlencodedSwagger 2.0 と OpenAPI 3.0 はワイヤー互換ですか? -
いいえ。それらはAPIプロトコルバージョンではなく、記述フォーマットのバージョンです。したがって、変換されたスペックはサービスが実行時にどのように反応するかを変えることはありません—ただし、ツール(生成器、バリデーター、モックサーバー、UIビュー)は公開するバージョンを理解しなければなりません。OpenAPI 3.0 は v2 にない機能を導入しました。これらには
、コールバック、リンク、およびより豊かなセキュリティフローがあります。今後(v3 → v2)は一般的に損失があり、逆に(v2 → v3)はv2がv3の表現力の厳密なサブセットであるため、大半は機械的です。
oneOf/anyOf/notこの文脈における -
解決とは何ですか?
$refは、たとえばあ
$refのようなJSONリファレンスポインタです。変換はすべてのポインタを書き換える必要があります。なぜなら、ターゲットパスが変更されたためです:#/definitions/User、そしてそれらに続きます。ポインタ自体は解決されません(ドキュメントはまだ場所で参照しています)が、構造の移動に同期して書き換えなければなりません。結果のv3スペックが内部的に整合性を持つようにします。#/definitions/Userになります#/components/schemas/User,#/parameters/AuthHeaderになります#/components/parameters/AuthHeaderSwagger 2.0 スペックをここに貼り付けます(YAMLまたはJSON)...
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
