cURLからDartへ

curlコマンドを貼り付けると、package:httpで同じリクエストを行うDartコードが出ます。

cURLからDartへの変換はブラウザ内でコマンドを解析します。資格情報が端末から出ることはありません。

開発・運営:Udit Agarwal

Swiftへ変換する

cURLからDartへ について

バックエンドのドキュメントはcurlコマンドを示し、FlutterアプリはDartを必要とします。この変換ツールはその橋渡しをします。curlのフラグをcurl自身と同じ流儀で解釈し、ほぼすべてのDartやFlutterのプロジェクトが既に依存しているpackage:httpを使うコードを出力します。ヘッダーは型付きのマップにまとめられ、JSONボディは貼り付けた文字列ではなくjsonEncodeを通すDartのマップになり、Basic認証はbase64Encodeで組み直されます。省略記法のない動詞はhttp.Requestに回ります。

機能

  • -X、-H、-d、--data-raw、--json、-u、-b、-A、-e、-Gをcurlと同じ流儀で解釈
  • Dartの標準HTTPクライアントであるpackage:httpを使うコードを生成
  • ヘッダーは型付きのMap<String, String>にまとめます
  • JSONボディはDartのマップとして書き出しjsonEncodeで符号化
  • Basic認証は貼り付けたBase64ではなくbase64Encodeで組み立て
  • 省略記法のない動詞にはhttp.Requestを使用
  • Dartに対応する書き方がないcurlのフラグを警告

cURLからDartへ の使い方

  1. APIドキュメントのcurlコマンドを貼り付けます
  2. 右側に出るDartコードを読みます
  3. 持ち越せなかったフラグの警告を確認します
  4. コードをコピーするか.dartファイルとして保存します

例

入力

curl -X PUT https://api.example.com/users/1 -H 'Authorization: Bearer TOKEN' -d '{"role":"admin"}'

出力

final response = await http.put(url, headers: headers, body: body);

動詞は-Xから決まり、JSONボディは符号化の前にDartのマップとして組み立てられます。

よくあるエラーとトラブルシューティング

  • 実行時にパッケージが見つからない。 — pubspec.yamlのdependenciesにhttpとして追加し、dart pub getを実行してください。SDKには含まれませんが、Dartチームが保守しています。
  • Flutter webでだけ失敗する。 — これはCORSであってコードの問題ではありません。curlが決して見ない同一生成元ポリシーをブラウザが適用するため、APIが適切なAccess-Controlヘッダーを返す必要があります。
  • ボディの文字列が妙に展開される。 — Dartではドル記号が補間を始めます。生成される文字列ではエスケープしていますが、手で貼る値は$を\$と書いてください。
  • Androidでは動くのにエミュレータのローカルサーバーへ届かない。 — Androidエミュレータはホストのlocalhostを見られません。10.0.2.2を使い、平文HTTPはネットワークセキュリティ設定で許可してください。

よくある質問

生成されたコードはFlutterアプリで動きますか。
動きます。package:httpはFlutterでも素のDartでも同じ挙動なので、リクエストのコードはそのままサービスクラスに貼れます。最後の出力だけアプリの処理に置き換えてください。
package:httpとDioのどちらを使うべきですか。
package:httpは軽い公式の選択肢で、ほとんどのリクエストを賄えます。Dioはインターセプタや中断、マルチパートの利便性を加えますが、APIが近いので移し替えは容易です。
JSONボディはどう変換されますか。
解析してDartのマップリテラルとして書き出し、jsonEncodeで符号化します。入れ子のオブジェクトや配列も読みやすく、値を変数に置き換えるのも簡単です。
http.getのような補助関数がないメソッドの場合は。
動詞を文字列としてhttp.Requestを組み立て、send()で送ります。PURGEやLINKなど、APIが使うどんな動詞にも対応できます。
変換のためにcurlコマンドは送信されますか。
されません。解析もコード生成もブラウザ内で行われるため、コマンド内のトークンやAPIキーは端末に留まります。

関連ツール

API ツールの他のツール

  • cURL から Fetch — curlコマンドを JavaScript の fetch() 呼び出しに変換します。
  • URL パーサー — URLを各パーツに分解し、クエリパラメータを一覧表示します。
  • API クライアント — HTTPリクエストを送信し、ヘッダーやパラメータを作成して応答を確認。直近25件を保存します。
  • URLビルダー&UTMジェネレーター — UTMパラメータを使用して完全にエンコードされた本番用URLを構築および検証します。
  • OpenAI API テスター — OpenAI Chat Completions API のリクエストを作成・実行し、cURL、Python、JavaScript としてコピーします。
  • Anthropic Claude API テスター — Anthropic Claude Messages API のリクエストを作成・実行し、cURL、Python、JavaScript としてコピーします。
  • Google Gemini API テスター — Google Gemini の generateContent API リクエストを作成・実行し、cURL、Python、JavaScript としてコピーします。
  • Replicate API テスター — Replicate の予測 API リクエストを作成・実行し、cURL、Python、JavaScript としてコピーします。
  • Hugging Face API テスター — Hugging Face Inference API のリクエストを作成・実行し、cURL、Python、JavaScript としてコピーします。
  • curl to Python 変換ツール — curlコマンドをPythonのrequestsコードに変換します。
  • curl to Go 変換ツール — curlコマンドをGoのnet/httpコードに変換します。
  • curl to PHP 変換ツール — curlコマンドをPHPのcURLコードに変換します。

API ツールのツールをすべて見る (24) · すべてのツール