UTILS.
100% ブラウザ内で完結
🌀

cURL → コード変換ツール

curl コマンドを貼り付けると、同等の JavaScript fetch() スニペット(メソッド・ヘッダー・ボディ・認証)が得られます。

出力

このツールについて

cURL → コード変換ツールは、curl コマンドを同等の JavaScript fetch() コードに変換する無料のブラウザ内ツールです。ターミナル、API ドキュメント、ブラウザの開発者ツールからコピーしたコマンドを貼り付けると、URL・HTTP メソッド・ヘッダー・リクエストボディ・認証を埋めた、そのまま実行できるスニペットを生成します。コマンドはテキストとしてのみ解析され、実行されることは決してなく、すべてブラウザ内で処理されます。

クォートを認識するトークナイザーが、シェルと同じようにコマンドを分割し、単一・二重クォート、バックスラッシュのエスケープ、\ による行継続を尊重するので、複数行のコマンドやクォートされた JSON ボディも正しくパースされます。そのうえで一般的なフラグを対応付けます。-X または --request はメソッドを設定し、-H または --header はヘッダーオブジェクトを組み立て、-d やその --data 系はリクエストボディになり(POST を含意)、-u または --user は Basic Authorization ヘッダーにエンコードされ、-F または --form は FormData ボディを組み立て、cookie・user-agent・referer のフラグは対応するヘッダーに対応付けられます。-L、-k、-s のような真偽フラグは無視されます。

動作している curl 呼び出しを Node やブラウザのスクリプトに移したり、ドキュメント化されたリクエストが Fetch API にどう対応するかを学んだり、API に対してすばやくプロトタイプを作るのに使えます。何も実行されず何もアップロードされないため、トークンを含むコマンドも安全に貼り付けられます。ただし、共有マシンに貼り付けた機密情報はやはりローテーションすべきです。

よくある質問

このツールは curl コマンドを実行しますか?
いいえ。手書きのトークナイザーで文字列としてコマンドをパースしてコードを生成するだけで、ネットワークリクエストを行ったり何かを実行したりすることは決してありません。つまりコマンドを手元で貼り付けても安全ですが、その中の認証情報は通常どおり慎重に扱ってください。
どの curl フラグに対応していますか?
一般的なものです。メソッドの -X/--request、ヘッダーの -H/--header、ボディの -d と --data-* 系、マルチパート FormData の -F/--form、Basic 認証の -u/--user に加え、-b(cookie)、-A(user-agent)、-e(referer)です。-L、-k、-s、--compressed のような真偽フラグは認識され、スキップされます。
-u user:password はどう扱われますか?
user:password の文字列を Base64 エンコードした Authorization: Basic ヘッダーに変換され、curl が送るものと一致します。エンコードされた値はそのまま生成されるヘッダーオブジェクトに書き込まれるので、スニペットはそのまま動作します。
なぜリクエストが既定で POST になるのですか?
curl は -d や -F でデータを送るとき自動的に POST を使うため、-X で明示的にメソッドを設定しない限り、この変換ツールも同じ動作をします。ボディがなくメソッドも指定されていない場合は GET が使われます。パースはすべてブラウザ内で非公開に実行され、外部ライブラリは使いません。

その他のツール