Fetch/Axios→cURL変換
fetch() や axios のコードを貼り付けると、同じリクエストを送る curl コマンドに変換します。ブラウザの開発者ツールでコピーしたfetchのコードや、ドキュメントのサンプルコードをターミナルで試したいときに便利です。コードは実行(eval)せず、文字列・オブジェクト・同じコード内の変数などのリテラルだけを読み取るため、通信も行いません。逆方向の変換は cURL→Fetch/Axios変換 をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
使い方
- 「fetch / axios のコード」欄にコードを貼り付けます(関数やasync関数の中のコードもそのまま貼れます)。
- 必要に応じて「オプションごとに改行する」を切り替えます。
- 「変換結果」のcurlコマンドを「コピー」して、ターミナルに貼り付けます。
注意事項
- 対応しているのは fetch(url, init)、axios(config)、axios.get / post / put / patch / delete / head / options / request の呼び出しです。method・headers・body・credentials・redirect・referrer、axiosの baseURL・params・data・auth・timeout などを変換します。それ以外のオプションは無視し、画面に警告を表示します。
- コードは評価(実行)せず、文字列・数値・オブジェクト・配列・テンプレートリテラル、同じコード内の const / let / var で宣言した値、JSON.stringify や new URLSearchParams / FormData / Headers などだけを読み取ります。関数呼び出しの結果(トークン取得関数など)や外部の変数は値を特定できないため、<名前> の形のプレースホルダで出力します。
- axios.create() で作ったインスタンスや、リクエストを組み立てる独自関数、ES Modulesの別ファイルにある値は追跡できません。複数のリクエストがあるコードでは最初の1件だけを変換します。
- curlコマンドはシェルの単一引用符(')で囲んで出力するため、macOS・Linuxのシェルでそのまま使えます。Windowsのコマンドプロンプトでは引用符の扱いが異なるため、PowerShellやGit Bashで実行してください。トークンなどの機密情報が含まれる場合は、コマンドを共有・公開する前に必ず確認してください。
用語解説
fetch
ブラウザやNode.js(18以降)に標準で備わるHTTPリクエストのAPIです。fetch(URL, { method, headers, body }) の形で呼び出します。
axios
HTTPリクエストを行うJavaScriptライブラリです。axios.post(URL, データ, 設定) のように書き、オブジェクトを渡すと自動でJSONとして送信します。
cURL
URLを指定してHTTPなどの通信を行うコマンドラインツールです。-X でメソッド、-H でヘッダー、--data-raw でボディを指定します。
FormData
フォームの項目やファイルをmultipart/form-data形式で送るためのオブジェクトです。curlでは -F オプションに対応します。
よくある質問
貼り付けたコードは実行されますか?
いいえ。コードはevalやFunctionで評価せず、本ツール内の構文解析で文字列やオブジェクトなどのリテラルを読み取るだけです。そのため、コード中の関数は呼ばれず、通信も発生しません。
ブラウザの「fetchとしてコピー」の内容も変換できますか?
はい。ChromeやEdgeの開発者ツールの「fetchとしてコピー」で得たコードをそのまま貼り付けて変換できます。mode・referrerPolicy・cache などcurlに影響しないオプションは警告なしで無視し、credentials: "include" は警告を表示します。
変数や関数の戻り値を使っているコードはどうなりますか?
同じコード内で const / let / var により文字列やオブジェクトとして宣言された変数は値を解決します。関数の戻り値や外部の変数など値を特定できない式は、<token> のようなプレースホルダで出力し、警告を表示します。実際の値に置き換えてお使いください。
axiosのparamsやオブジェクトのdataはどう変換されますか?
paramsはaxiosと同じ規則(配列は key[]=値)でURLのクエリ文字列に追加します。dataにオブジェクトや配列を渡した場合はJSON文字列として --data-raw に出力し、Content-Typeが未指定なら application/json のヘッダーを補います。
このページをシェア
