在上一章中,您確定了您的 API 需要什麼資料。現在是時候設計資料模型並在 Apidog 中將其作為 schemas 實作了。資料模型定義了您 API 資料的結構——存在什麼欄位、它們的類型、驗證規則以及如何使用它們。Schemas 是這些模型在 Apidog 中使用 JSON Schema 的技術實作。在本章中,我們將學習如何設計資料模型並立即將它們作為 Apidog 中的 schemas 實作。我們將使用 Pet Store User 模組作為範例,逐步建立 schemas。
1. 什麼是資料模型和 Schemas?#
資料模型是資料結構的概念設計。Schema 是實作該模型的技術規格。Schema = Apidog/OpenAPI 中的實際規格(您實作的)
在 Apidog 中,schemas 基於 JSON Schema 並定義:
2. 設計流程#
3.
作為 schema 實作 — 在 Apidog 中建立它
3. 設計 User 模型#
preferences — 使用者偏好(巢狀物件)
password — 用於登入(絕不返回在回應中)
User 模型結構#
{
"id": "usr_3Oy2JIS7TMJgEXfM",
"email": "jane.smith@example.com",
"firstName": "Jane",
"lastName": "Smith",
"phone": "+14155551234",
"preferences": {
"newsletter": true,
"notifications": false
},
"createdAt": "2024-01-15T10:30:00Z"
}
4. 在 Apidog 中建立 Schemas#
現在讓我們在 Apidog 中將此模型作為 schema 實作。Apidog 推薦的方法是直接貼上 JSON,它將自動識別並生成 schema 結構。步驟 1:建立 User Schema#
1.
在您的 Apidog 專案中,前往 Schemas 部分
3.
將其命名為 "User" 並新增描述:"User account information"
步驟 2:從 JSON 生成 Schema#
Apidog 允許您貼上 JSON 並自動生成 schema,而不是手動逐一新增屬性:1.
點擊 Schema 編輯器中的 「Generate from JSON etc.」 按鈕
{
"id": "usr_3Oy2JIS7TMJgEXfM",
"email": "jane.smith@example.com",
"firstName": "Jane",
"lastName": "Smith",
"phone": "+14155551234",
"preferences": {
"newsletter": true,
"notifications": false
},
"createdAt": "2024-01-15T10:30:00Z"
}
3.
設定適當的資料類型 (string, boolean, object, date-time)
注意: 預設情況下,JSON 中的所有屬性都將標記為 required。您需要手動調整可選欄位。步驟 3:完善生成的 Schema#
1.
取消勾選 phone 和 preferences 的 "Required"
2.
id:新增模式 ^usr_[A-Za-z0-9]{16}$ 並標記為唯讀 (read-only)
email:設定格式為 email,新增最大長度 255
firstName 和 lastName:新增最大長度 50
phone:新增模式 ^\+?[1-9]\d{1,14}$ (E.164 格式)
createdAt:設定格式為 date-time 並標記為唯讀
提示: Apidog 的 JSON 智慧識別會根據 JSON 值生成資料結構,但不會保存實際值。您可以隨後新增描述並調整驗證規則。
5. 建立巢狀 Schemas:UserPreferences#
preferences 欄位是一個巢狀物件。讓我們為它建立一個單獨的 schema,以便我們可以重複使用它。步驟 1:建立 UserPreferences Schema#
1.
建立一個名為 "UserPreferences" 的新 schema
2.
新增描述:"User communication preferences"
步驟 2:從 JSON 生成#
1.
點擊 「Generate from JSON etc.」
{
"newsletter": true,
"notifications": false
}
3.
Apidog 將自動識別兩個 boolean 欄位
步驟 3:完善 Schema#
1.
將兩個欄位標記為可選(取消勾選 "Required")
步驟 4:在 User Schema 中引用#
這建立了一個引用,允許您重複使用 UserPreferences schema。如果您稍後更新 UserPreferences,所有引用都會自動反映這些更改。
6. Schema 最佳實踐#
保持簡單 (Keep It Simple)#
儘可能使用簡單類型: 適當時優先選擇 string 而不是複雜物件
將相關欄位分組: 使用巢狀物件進行邏輯分組(如 preferences)
避免過度巢狀 (Avoid Over-Nesting)#
盡量將巢狀保持在最多 2-3 層。深度巢狀使 schemas 難以理解和使用。使用 Schema 引用#
當您有可重複使用的結構(如 UserPreferences)時,建立單獨的 schemas 並引用它們。這:安全考量#
使用唯寫 (write-only) 用於敏感輸入欄位 (password)
使用唯讀 (read-only) 用於系統生成的欄位 (id, createdAt)
為可擴展性規劃#
7. 關鍵收穫#
3.
使用「Generate from JSON」 以從 JSON 資料快速建立 schemas
4.
使用 schema 引用用於可重複使用的結構(如 UserPreferences)
5.
首先建立核心 schemas — 請求/回應變體可以在端點層級處理
6.
安全很重要: 使用唯寫用於敏感欄位,唯讀用於系統生成欄位
既然您已經設計並實作了核心 schemas,您準備好開始建構端點了。在下一章中,我們將學習如何在 Apidog 中設計端點,使用我們建立的 schemas 和我們之前規劃的端點結構。 Modified at 2025-12-29 09:35:19