到目前為止,您已經學會了如何理解和使用現有的 API。但是如果您需要建立自己的 API 呢?您如何設計一個清晰、一致且容易讓其他開發者使用的 API?API 設計是規劃和建立定義 API 如何運作的結構、端點和資料模型的過程。就像建造建築物需要在施工前繪製藍圖一樣,設計 API 需要在實作前進行仔細的規劃。在本文中,我們將探討 API 設計的基本概念和原則,重點關注 RESTful API——這是您將遇到的最常見的 API 類型。
1. 什麼是 API 設計?#
您的 API 將暴露什麼資源(如使用者、訂單或產品)
可以對這些資源執行什麼操作(建立、讀取、更新、刪除)
客戶端如何與您的 API 互動(端點、方法、參數)
一個設計良好的 API 就像一份組織良好的菜單:清晰、一致且易於理解。
2. RESTful API 設計原則#
大多數現代 API 遵循 REST (Representational State Transfer) 原則。REST 不是一種技術或標準,而是一套使 API 可預測且易於使用的架構原則。基於資源的設計 (Resource-Based Design)#
REST API 圍繞著資源建構——您可以與之互動的事物。資源通常是名詞(如 users, orders, pets),而不是動詞。使用 HTTP 方法表達操作#
REST API 使用 HTTP 方法來表達您想要做什麼,而不是將動作放在 URL 中:| HTTP 方法 | 含義 | 範例 |
|---|
| GET | 檢索資料 | GET /users/{id} — 獲取一個使用者 |
| POST | 建立資料 | POST /users — 建立一個使用者 |
| PUT | 取代資料 | PUT /users/{id} — 更新整個使用者 |
| PATCH | 部分更新 | PATCH /users/{id} — 更新部分欄位 |
| DELETE | 移除資料 | DELETE /users/{id} — 刪除一個使用者 |
請注意,相同的路徑 (/users/{id}) 如何與不同的方法一起使用以執行不同的操作。這是一個關鍵的 REST 原則。無狀態 (Stateless)#
每個 API 請求都應包含處理它所需的所有資訊。伺服器不應該需要記住先前的請求。這使得 API:標準 HTTP 方法 (GET, POST, PUT, DELETE)
標準狀態碼 (200 OK, 404 Not Found 等)
一致的 URL 模式 (/resource/{id})
這種一致性使得 REST API 易於學習和使用。
3. API 設計最佳實踐#
除了 REST 原則之外,以下是一些使您的 API 更專業且對開發者更友善的最佳實踐:命名慣例#
對集合使用複數名詞:/users, /orders
使用带有連字號或底線的小寫字母:/user-preferences 或 /user_preferences
具描述性但簡潔:/users 比 /u 或 /user_accounts_management 更好
✅ Good: POST /users
✅ Good: GET /users/{id}
❌ Bad: POST /createUser
❌ Bad: GET /getUserById/{id}
URL 結構#
/users/{id}/orders — 獲取使用者的訂單
/users/{id}/preferences — 獲取使用者偏好
✅ Good: /users/{id}/orders/{orderId}
❌ Bad: /users/{id}/orders/{orderId}/items/{itemId}/details/{detailId}
版本控制#
API 會隨著時間改變。版本控制允許您在不破壞現有客戶端的情況下更新您的 API。URL 版本控制:/v1/users, /v2/users
Header 版本控制:在請求 Header 中包含版本
對於大多數 API,URL 版本控制是最簡單和最常見的方法。錯誤處理#
始終返回有意義的錯誤訊息和適當的 HTTP 狀態碼:| 狀態碼 | 含義 | 範例 |
|---|
| 200 | 成功 | 請求成功完成 |
| 201 | 已建立 | 資源已成功建立 |
| 400 | 錯誤的請求 | 無效的輸入資料 |
| 401 | 未經授權 | 需要身分驗證 |
| 403 | 禁止 | 權限不足 |
| 404 | 未找到 | 資源不存在 |
| 422 | 無法處理的實體 | 驗證錯誤 |
| 500 | 內部伺服器錯誤 | 伺服器錯誤 |
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Email address is required",
"field": "email"
}
}
4. API 優先 (API-First) vs 程式碼優先 (Code-First)#
程式碼優先方法#
API 優先方法(推薦)#
Apidog 提倡 API 優先方法,因為它能帶來更好的設計和更順暢的團隊協作。
5. 完整的 API 設計流程#
設計 API 是一個循序漸進的過程。這是典型的工作流程:在接下來的章節中,我們將使用 Pet Store User 模組作為範例,詳細介紹這些步驟中的每一個。
6. 關鍵收穫#
在您開始建立自己的 API 之前,了解 API 設計原則至關重要:1.
API 設計是關於在實作之前規劃結構、端點和資料模型。
2.
REST 原則提供了一種一致、可預測的 API 設計方式: 5.
設計是一個過程,涉及分析、規劃、設計、驗證和迭代。
現在您已經了解了 API 設計的基礎知識,準備好開始實際的設計流程了。第一步是在 Apidog 中建立您的 API 專案,這將作為所有設計工作的工作區。 Modified at 2025-12-29 09:35:19