レッスン 2
ヘッダー、メソッド、ボディ
`-X`、`-H`、`-d` オプションを明確な HTTP リクエストモデルに対応付けます。
ほとんどの cURL からコードへの変換は、3 つの概念を中心に回ります。メソッド、ヘッダー、ボディです。
メソッド
-X または --request で HTTP メソッドを設定します。
curl -X PATCH https://api.example.com/users/42
-X がない場合、cURL は通常 GET を送ります。-d がある場合、cURL は多くの場合 POST を送ります。
ヘッダー
-H または --header でヘッダーを追加します。
curl -H "Accept: application/json" -H "X-Request-Id: demo-1" https://api.example.com
HTTP 規則上ヘッダー名は大文字小文字を区別しませんが、アプリケーションコードでは可読性のために名前を明確に保持すべきです。
ボディ
-d、--data、--data-raw、--data-binary でボディ内容を添付します。
curl -H "Content-Type: application/json" -d '{"name":"Ada"}' https://api.example.com/users
ボディは単なるバイト列です。Content-Type ヘッダーが、サーバーにそのバイト列の解釈方法を伝えます。
フォームと JSON は異なる
これらは同等ではありません。
curl -d "name=Ada&role=admin" https://api.example.com/users
curl -H "Content-Type: application/json" -d '{"name":"Ada","role":"admin"}' https://api.example.com/users
前者はフォーム形式のデータ、後者は JSON です。コンバーターは両方を翻訳できますが、アプリケーション側でもサーバーが同じコンテンツタイプを期待している必要があります。