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 #ターミナル #開発ツール
← ターミナルAPIシリーズ一覧へ