Vibe Coder

API 串接實戰:看懂文件、Postman 測試、requests 補強

API 串接的關鍵順序是先讀懂文件、用 Postman 測通,再讓 AI 把測試結果轉成程式碼。AI 生的串接程式常常只處理成功的情況,timeout、錯誤處理、分頁、Rate Limit 都要你主動要求補上。
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 文件:必讀的五個區塊

區塊看什麼重要性
AuthenticationAPI Key 怎麼申請、放在哪裡,Header 還是 URL 參數
EndpointAPI 的完整 URL,注意 base URL 和路徑要拼在一起
Parameters必填和選填的參數,名稱和型別要對
Request BodyPOST、PUT 要傳什麼 JSON 結構
Response Schema成功時回傳什麼結構,失敗時回傳什麼
把文件貼給 AI 最有效找到 API 的文件頁面,複製相關段落,告訴 AI:這是某個 API 的文件,請幫我寫 Python 程式串接它,取得我要的資料。這比只說幫我串接某個 API 精確十倍。
① 看懂 API 文件② Postman 測通③ AI 補強成程式
先測通再寫程式,順序不能顛倒。

用 Postman 先測試,再讓 AI 寫程式

Postman 是一個 API 測試工具,讓你在寫程式之前先確認 API 可以打通。

  1. 下載並開啟 Postman,建立新的 Request。
  2. 選擇方法,GET 或 POST,輸入 API 的完整 URL。
  3. 在 Headers 頁籤加入 Authorization 和 Content-Type。
  4. 如果是 POST,在 Body 選 raw、JSON,填入要傳的資料。
  5. 點 Send,確認狀態碼是 200,且 Response 格式符合預期。
  6. 測試成功後,點 Code 再選 Python Requests,Postman 會自動生成 Python 程式碼。
Postman 測試成功後的標準流程把 Postman 生成的程式碼貼給 AI,說:這是 Postman 生成的 API 呼叫程式碼,請幫我加上從 .env 讀取 API Key、加上錯誤處理、解析 response 取出需要的欄位、加上繁體中文註解。

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
沒有 timeoutAPI 沒回應就一直等請加上 timeout 等於 10 秒的參數
沒有 raise_for_status4xx、5xx 不會拋出錯誤,繼續執行請在 requests 後加上 raise_for_status
沒有處理 Rate Limit收到 429 後直接當機請加上 429 時等待 60 秒再重試的邏輯
Key 寫死在程式裡上傳 GitHub 就洩漏請改從環境變數讀取 API Key
API Key 放錯位置是常見特例不是所有 API 都把 Key 放在 Header,有些會要求放在網址的查詢參數裡。這種細節只有讀文件才會發現,套用一般模板反而會出錯,串接前務必確認清楚。

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

為什麼要先用 Postman 測試,不能直接叫 AI 寫程式嗎?
先用 Postman 確認 API 本身可以打通,出錯時才能判斷問題在 API 設定還是在程式碼,不會浪費時間在猜測上。
API 文件要怎麼給 AI 才最有效?
找到文件頁面複製相關段落,直接告訴 AI 這是哪個 API 的文件,要它幫你串接取得什麼資料,比只說一句需求精確很多。
AI 生的串接程式最常漏掉什麼?
最常見的四個問題是沒有設定 timeout、沒有呼叫 raise_for_status、沒有處理 Rate Limit 429、以及把 API Key 寫死在程式裡。
API 回傳資料很多筆要怎麼一次全部拿到?
用分頁參數搭配迴圈,每次取一批資料加進總清單,直到回傳結果顯示沒有下一頁為止。