A
約 2 分鐘閱讀

HTTP 方法與狀態碼 — 讓 API 說人話

在設計或串接 API 時,我們最常打交道的就是 HTTP 方法 (Methods) 和狀態碼 (Status Codes)。正確使用它們,能讓你的 API 更語意化、更易於維護,就像兩個人在用標準的語言溝通,而不是雞同鴨講。

HTTP 方法:動作是什麼?

最常見的四種方法對應到資料庫操作的 CRUD:

GET:讀取資料

POST:新增資料

PUT:更新資料 (整筆替換)

PATCH:更新資料 (部分修改)

DELETE:刪除資料

HTTP 狀態碼:結果如何?

狀態碼分為五大類:

1xx:資訊回應

2xx:成功 (Success)

3xx:重新導向 (Redirection)

4xx:客戶端錯誤 (Client Error)

418 I’m a teapot (我是個茶壺)

這是一個愚人節玩笑定義的狀態碼,意思是「你不能用茶壺來泡咖啡」。但在某些 IoT 設備或彩蛋中會看到它。

5xx:伺服器錯誤 (Server Error)

為什麼要區分這麼細?

其實你可以永遠都回傳 200 OK,然後在 JSON 裡用 success: false 來表示錯誤。但這樣做有幾個缺點:

  1. 監控困難:運維系統通常只監控 HTTP 狀態碼。如果你都回 200,它會以為系統很健康,實際上可能全是錯誤。
  2. 不符合語意:瀏覽器和快取伺服器依賴狀態碼來決定行為 (例如看到 304 就讀快取)。
  3. 溝通成本高:串接方需要去讀你的文件才知道 error_code: 999 是什麼意思,而不像 404 是通用語言。

結語

設計良好的 API 就像寫作,HTTP 方法是動詞,URL 是名詞,狀態碼是語氣。掌握這些基礎,能讓你寫出更優雅、更專業的介面。


站內相關文章: