跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

分頁、錯誤處理與 Rate Limit

真實的 API 不會一次把所有資料倒給你。商品有上萬筆、訂單有數十萬筆——API 會「分頁」回傳,而且限制你每分鐘能打幾次。

分頁(Pagination)

Offset-based 分頁

最常見的分頁方式,用 pagelimit 控制:

Cursor-based 分頁

大型平台偏好的方式,用 cursor 標記位置:

錯誤處理

API 不會永遠成功。學會看錯誤碼,才知道怎麼修:

Rate Limit(速率限制)

API 通常會限制你每分鐘或每小時能打幾次:

實務模式:自動重試

AI 協作:學了這個,跟 AI 怎麼配合?

分頁和錯誤處理邏輯很模板化,非常適合讓 AI 幫你寫。你只需要指定「要抓幾頁」和「錯誤時怎麼辦」。

你的人類優勢:

  • 你知道需要抓多少資料(全部?還是只要最新 100 筆?)
  • 你能決定錯誤時的策略(重試?跳過?通知?)

可以這樣跟 AI 說:

幫我寫一個自動分頁的函式,呼叫 GET /api/orders?page={n}&limit=50,自動翻頁直到沒有下一頁。遇到 429 就等 Retry-After 秒數後重試,最多重試 3 次。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩
DEMO 4可以修改程式碼試玩
DEMO 5可以修改程式碼試玩

挑戰任務

Task 1

計算分頁資訊。總共 87 筆資料,每頁 20 筆,印出「總頁數: 5」。

Task 2

判斷 Rate Limit 狀態。剩餘 2 次(上限 100 次),印出「警告: 剩餘 2/100」。

起始程式碼: const remaining = 2; const limit = 100;

Task 3

根據 HTTP status 回傳對應處理方式。印出正確的處理方式。

起始程式碼: const status = 429; const actions = { 200: '處理資料', 401: '重新登入', 429: '等待重試', 500: '聯絡管理員' };

BackNext Lesson →