從 curl 到程式碼
每個 curl 指令都能直接翻成真實程式碼
⏱ 預估 ~8 分鐘
01 · 讀一讀
秘密在這:curl 不只是測試工具。它是一份翻譯指南。
你寫的每個 curl 指令都能 1:1 對應到 JavaScript 的 fetch 呼叫、Python 的 requests 呼叫、或任何其他 HTTP client。一旦請求在 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)三種寫法。
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 → 第一個參數 - -H "Key: Value" → headers 物件 { 'Key': 'Value' } - -X POST → method: 'POST' - -d '{...}' → body: JSON.stringify({...}) 結構一樣。語法不同。
03 · 看程式碼
一個 POST 請求 — 同樣的資料三種寫法。
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 · 真機練習
寫一個 curl 指令,拿 GitHub 上 microsoft 最近更新的 3 個公開 repo。然後請 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 · Prompt 範本
你的 curl 跑通之後,用這個 prompt 請 Claude Code 翻成程式碼。
把這個 curl 指令翻譯成一個 JavaScript async 函式,回傳解析後的 JSON:
curl "https://api.github.com/users/microsoft/repos?sort=updated&per_page=3"
函式請命名為 `getMicrosoftRepos`,並妥善處理錯誤。
08 · 選擇題
在 JavaScript fetch 裡,哪個屬性取代 curl 的 -d 旗標?
09 · 填空
curl 旗標 -H "Key: Value" 在 JavaScript fetch 呼叫對應到 _____ 物件。
⚠ 完整互動體驗需要 JavaScript。請啟用 JavaScript 後重新整理。
※ 本站為獨立繁中教學專案,非 Anthropic 官方產品。Claude™ 為 Anthropic, PBC 商標。