curl からコードへ
どの curl コマンドも、そのまま本物のコードに翻訳できる
⏱ 想定 ~8 分
01 · 読む
ここに秘密があります: curl は単なるテストツールではありません。 翻訳ガイド です。
あなたが書くすべての curl コマンドは、 JavaScript の fetch 呼び出し、 Python の requests 呼び出し、その他あらゆる HTTP クライアントに 1 対 1 で対応します。 curl でリクエストが通れば、コードへの翻訳は機械的な作業 —— Claude Code なら数秒で終わります。
これがエンジニアのワークフローです:
1. API を理解する (ドキュメントを読む) 2. curl でリクエストをテストする (動くことを確認) 3. コードに翻訳する (プロジェクトに貼り付け) 4. レスポンスを処理する (パースして使う)
ポイントまとめ
- curl のフラグはコードに直接対応: -H → headers オブジェクト、 -d → body
- 動く curl コマンドを Claude Code に貼り付けて: 「これを JavaScript の fetch に翻訳して」
- 翻訳は機械的 —— 難しいのは curl を通すところで、コードではありません
- このフローはどの言語でも使えます: JS、 Python、 Go、 Ruby など
02 · コード例
同じリクエストを curl、 JavaScript (fetch) 、 Python (requests) の 3 通りで書いてみます。
curl
curl https://api.github.com/users/torvalds \
-H "Accept: application/json"
JavaScript (fetch)
const response = await fetch('https://api.github.com/users/torvalds', {
headers: {
'Accept': 'application/json'
}
});
const data = await response.json();
console.log(data.name); // 'Linus Torvalds'
Python (requests)
import requests
response = requests.get(
'https://api.github.com/users/torvalds',
headers={'Accept': 'application/json'}
)
data = response.json()
print(data['name']) # Linus Torvalds
対応関係を見てみましょう: - URL → 第 1 引数 - -H "Key: Value" → headers オブジェクト { 'Key': 'Value' } - -X POST → method: 'POST' - -d '{...}' → body: JSON.stringify({...}) 構造は同じ。文法だけが違います。
03 · コード例
今度は POST リクエスト —— 同じデータを 3 通りで書いてみます。
curl
curl -X POST https://api.example.com/posts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer MY_TOKEN" \
-d '{"title": "Hello", "body": "World"}'
JavaScript (fetch)
const response = await fetch('https://api.example.com/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer MY_TOKEN'
},
body: JSON.stringify({ title: 'Hello', body: 'World' })
});
const data = await response.json();
Python (requests)
import requests
response = requests.post(
'https://api.example.com/posts',
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer MY_TOKEN'
},
json={'title': 'Hello', 'body': 'World'}
)
data = response.json()
04 · 実機演習
GitHub の microsoft の直近で更新された 3 つの公開リポジトリを取得する curl コマンドを書いてください。そのあと、 Claude Code に JavaScript への翻訳を頼みます。
curl "https://api.github.com/users/microsoft/repos?sort=updated&per_page=3"
05 · クイズ
JavaScript の fetch に翻訳するとき、 curl のどのフラグが 'headers' オブジェクトに対応しますか?
- -H (header)
- -d (data)
- -X (method)
- -o (output)
06 · 空欄補充
curl の -d '{"name": "test"}' フラグは、 JavaScript fetch のオプションオブジェクトでは _____ プロパティに対応します。
07 · プロンプトテンプレート
curl が通ったら、このプロンプトで Claude Code にコードへの翻訳を頼みましょう。
この curl コマンドを、パース済みの JSON を返す JavaScript の async 関数に翻訳してください:
curl "https://api.github.com/users/microsoft/repos?sort=updated&per_page=3"
関数名は `getMicrosoftRepos` 、エラーも適切に処理してください。
08 · クイズ
JavaScript の fetch で、 curl の -d フラグの代わりになるプロパティは?
09 · 空欄補充
JavaScript の fetch 呼び出しで、 curl の -H "Key: Value" フラグに対応するのは _____ オブジェクトです。
⚠ 全機能のインタラクティブ体験には JavaScript が必要です。JavaScript を有効にして再読み込みしてください。
※ このサイトは独立した教育プロジェクトで、Anthropic の公式製品ではありません。Claude™ は Anthropic, PBC の商標です。