Vibe Coder
API 串接實戰:看懂文件、Postman 測試、requests 補強
API 串接實戰:看懂文件、Postman 測試、requests 補強
API 文件是 AI 的原始資料,你把正確的文件資訊給 AI,它就能生出正確的串接程式;給錯了,生出來的也是錯的。這一課教你三個步驟:先看懂文件的五個區塊,再用 Postman 測通,最後讓 AI 把測試結果補強成完整、有錯誤處理的 Python 程式。
學會複用這套流程之後,換一個 API 也只是換 URL 和參數,不用每次都從零開始問 AI。
你將學到什麼
看懂 API 文件
必讀的五個區塊,把文件貼給 AI 比只說一句話精確十倍。
用 Postman 先測試
確認 API 本身打得通,再讓 AI 把結果轉成程式碼。
requests 完整用法
帶著 timeout、錯誤處理的完整 Python 串接範例。
處理成功、失敗、分頁
AI 生的程式最常漏掉的四個地方,追問 AI 一次補齊。
看懂 API 文件:必讀的五個區塊
| 區塊 | 看什麼 | 重要性 |
|---|---|---|
| Authentication | API Key 怎麼申請、放在哪裡,Header 還是 URL 參數 | 高 |
| Endpoint | API 的完整 URL,注意 base URL 和路徑要拼在一起 | 高 |
| Parameters | 必填和選填的參數,名稱和型別要對 | 高 |
| Request Body | POST、PUT 要傳什麼 JSON 結構 | 中 |
| Response Schema | 成功時回傳什麼結構,失敗時回傳什麼 | 中 |
用 Postman 先測試,再讓 AI 寫程式
Postman 是一個 API 測試工具,讓你在寫程式之前先確認 API 可以打通。
- 下載並開啟 Postman,建立新的 Request。
- 選擇方法,GET 或 POST,輸入 API 的完整 URL。
- 在 Headers 頁籤加入 Authorization 和 Content-Type。
- 如果是 POST,在 Body 選 raw、JSON,填入要傳的資料。
- 點 Send,確認狀態碼是 200,且 Response 格式符合預期。
- 測試成功後,點 Code 再選 Python Requests,Postman 會自動生成 Python 程式碼。
requests 完整用法
import requests, os
from dotenv import load_dotenv
load_dotenv()
headers = {
"Authorization": f"Bearer {os.getenv('API_KEY')}",
"Content-Type": "application/json",
}
payload = {"query": "weather taipei", "lang": "zh"}
try:
r = requests.post("https://api.example.com/search",
headers=headers, json=payload, timeout=10)
r.raise_for_status() # 4xx or 5xx 自動拋出 exception
data = r.json()
except requests.exceptions.Timeout:
print("request timed out")
except requests.exceptions.HTTPError as e:
print(f"http error: {e.response.status_code}")
處理 API 回傳:成功、失敗、分頁
拿到 Response 之後,先判斷狀態碼再安全取值,不要假設欄位一定存在。
if r.status_code == 200:
data = r.json()
items = data.get("items", []) # 安全取值,沒有給空 list
total = data.get("total", 0)
print(f"total {total}, got {len(items)}")
else:
error = r.json().get("error", "unknown error")
print(f"error {r.status_code}: {error}")
資料量大的 API 通常會分頁,要全部取完得用迴圈,直到回傳結果顯示沒有下一頁為止。
all_items = []
page = 1
while True:
r = requests.get(url, params={"page": page, "per_page": 100}, headers=headers)
data = r.json()
all_items.extend(data.get("items", []))
if not data.get("has_next", False):
break
page += 1
AI 串接 API 的四個常見問題
| 問題 | 症狀 | 追問 AI |
|---|---|---|
| 沒有 timeout | API 沒回應就一直等 | 請加上 timeout 等於 10 秒的參數 |
| 沒有 raise_for_status | 4xx、5xx 不會拋出錯誤,繼續執行 | 請在 requests 後加上 raise_for_status |
| 沒有處理 Rate Limit | 收到 429 後直接當機 | 請加上 429 時等待 60 秒再重試的邏輯 |
| Key 寫死在程式裡 | 上傳 GitHub 就洩漏 | 請改從環境變數讀取 API Key |
延伸學習
做出你的第一個 Skill
一場快閃直播的完整重製。從搞懂 Skill 的五個層級開始,帶你把一件你每天在做的重複工作,寫成一支 AI 真的會照做的 Skill ── 命名、description、輸入拆解、Workflow 訪談、Output 與 Checks,最後組成一份能通過格式檢查的 SKILL.md。
NT$ 999
ChatGPT 很強,但真正讓你下班的是 Google
六小時完整實錄。從「AI 很厲害,為什麼你還是每天加班」這個問題出發,把 Google Workspace 當成真正的工作平台重新設計一次流程 ── Sheets 的資料結構、Drive 與 Docs 的文件流、Gmail 與 Calendar 的通知系統,再用 Apps Script 讓它自己跑起來,最後收斂成一張屬於你自己的 AI 工作能力地圖。
NT$ 4,599

