curlでAPI入門ガイド
ターミナルからAPIを叩く基本手順。
curlとは
コマンドラインでHTTPリクエストを送るツール。ほとんどのOS標準搭載。
手順
01. curl確認
curl --version
02. 基本リクエスト(GET)
curl https://api.example.com/data
03. JSONデータ送信(POST)
curl -X POST https://api.example.com/data \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
04. 認証付きリクエスト
curl https://api.example.com/data \
-H "Authorization: Bearer YOUR_API_KEY"
05. レスポンスをファイルに保存
curl https://api.example.com/data -o output.json
06. 完了
参考リンク
ここから先は、curlの便利なオプションと実用例を解説します。
Q&A - 基本オプション
よく使うオプション
| オプション | 意味 |
|-----------|------|
| -X | HTTPメソッド指定 |
| -H | ヘッダー追加 |
| -d | データ送信 |
| -o | 出力ファイル指定 |
| -s | 進捗非表示 |
| -v | 詳細表示 |
| -i | レスポンスヘッダー表示 |
HTTPメソッド
curl -X GET https://api.example.com/data
curl -X POST https://api.example.com/data
curl -X PUT https://api.example.com/data/1
curl -X DELETE https://api.example.com/data/1
Q&A - データ送信
JSONを送る
curl -X POST https://api.example.com/data \
-H "Content-Type: application/json" \
-d '{"name": "test", "value": 123}'
ファイルからデータを読む
curl -X POST https://api.example.com/data \
-H "Content-Type: application/json" \
-d @data.json
フォームデータ
curl -X POST https://api.example.com/upload \
-F "file=@image.png" \
-F "name=test"
Q&A - 認証
Bearer Token
curl https://api.example.com/data \
-H "Authorization: Bearer sk-xxxxx"
Basic認証
curl -u username:password https://api.example.com/data
APIキーをヘッダーで
curl https://api.example.com/data \
-H "X-API-Key: xxxxx"
Q&A - 出力整形
JSONを見やすく(jqと組み合わせ)
curl -s https://api.example.com/data | jq .
特定フィールドだけ抽出
curl -s https://api.example.com/data | jq '.result.name'
Q&A - デバッグ
リクエスト/レスポンス詳細
curl -v https://api.example.com/data
レスポンスヘッダーだけ
curl -I https://api.example.com/data
タイムアウト設定
curl --connect-timeout 5 --max-time 30 https://api.example.com/data
Q&A - 実用例
OpenAI API
curl https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "Hello"}]
}'
Claude API
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
タグ: #curl #API #HTTP #ターミナル #開発ツール