Postman、Insomnia、Bruno、OpenAPI、cURL のリクエストテキストをインポートし、抽出したリクエストを OpenAPI、Postman、cURL コマンド、Fetch コードとしてエクスポートします。
ブラウザ内でローカルに実行このコンバーターは、コピーしたテキストまたは選択したローカルファイルを読み取ります。API エンドポイントを呼び出したり、リモートでコレクションをインポートしたりすることはありません。
| 名前 | メソッド | URL | ヘッダー |
|---|---|---|---|
| コレクションまたはリクエストを貼り付けると、ローカル変換のプレビューが表示されます。 | |||
生成された出力を確定する前に確認してください。認証情報はこのブラウザタブ内にのみ保持され、共有する前に安全な変数に置き換える必要があります。
入力は 5 種類(Postman コレクション、Insomnia エクスポート、Bruno リクエスト、OpenAPI / Swagger ドキュメント、cURL コマンド)、出力は 4 種類(OpenAPI 3.0.3、Postman v2.1、cURL、Fetch JavaScript)です。20 通りの組み合わせすべてを、実際のリクエストデータで実行して確認しました。
変換はブラウザーの JavaScript で行います。ネットワークパネルを開いた状態で 2.2 MB のコレクションを変換しても通信は 1 件も発生せず、コレクション・URL・認証情報は送信されず、入力に含まれるエンドポイントが呼ばれることもありません。
Postman のフォルダーは「フォルダー / リクエスト」という名前に展開され、コレクション自身の変数リストの値が URL・ヘッダー・ボディに反映されます。ファイル内で定義された {{baseUrl}} は実際のアドレスとして展開され、定義のないプレースホルダーは推測せずそのまま残します。
Swagger 2.0 は host・basePath・schemes から読み取り、in: body のパラメーターは宣言された consumes のメディアタイプでリクエストボディに、in: formData のフィールドは multipart のフォームデータになります。Bruno ファイルからはメソッドブロック・URL・ヘッダーブロックを読み取り、それ以外のブロックは使いません。
対応するのは -X/--request、-H/--header、-d/--data/--data-raw/--data-binary/--data-urlencode、-F/--form/--form-string、-u/--user、-A/--user-agent、-b/--cookie、-e/--referer、--url で、行末のバックスラッシュによる継続行も解析前に連結します。-u user:pass は Authorization: Basic ヘッダーになり、-A・-b・-e は User-Agent・Cookie・Referer になります。
ファイル送信も保持されます。-F "file=@photo.png" は curl と同じくメソッドを POST に変え、Postman ではファイルフィールド、cURL では -F 引数、Fetch では FormData のエントリーとして出力されます。ディスクから読むボディはファイル参照のまま残り、-d @payload.json は --data @payload.json として書き出され、--data-raw @payload.json は文字列のままの意味を保ちます。
パスのテンプレートは往復しても壊れません。ある OpenAPI ドキュメントから別の OpenAPI ドキュメントへ変換しても /items/{id} は /items/{id} のままで、/items/%7Bid%7D にはなりません。クエリ文字列は URL にあった値を持つ query パラメーターになり、1 つのパスに 2 つのメソッドがあれば 1 つのパス項目に 2 つの操作として出力されます。
OpenAPI では同じパスと同じメソッドの操作を 2 つ持てないため、重複した組は統合し、統合した件数をステータス行に表示します。ホストが異なるリクエストはそれぞれのサーバーを保持し、最初のホストがドキュメントのサーバーになります。
生成される OpenAPI に入るのはスキーマではなくサンプル値です。ボディは example オブジェクトになり、各操作には 200 Successful response という仮の応答が付きます。編集の出発点になるドキュメントであり、検証済みの仕様ではなく、元データになかったレスポンスモデルを勝手に作ることもありません。
ヘッダーと認証情報はそのままコピーされるため、結果を共有する前に変数へ置き換えるようページ内で案内しています。変換に失敗した場合は前回の結果を画面に残さず消去するので、古いドキュメントを今回の結果と取り違えることはありません。大きな入力も高速で、2.2 MB・5,000 リクエストが約 65 ミリ秒、43 KB・100 リクエストが約 10 ミリ秒で処理されます。