[英]Pydantic schema logic
所以,我正在構建一個 API 來與我的個人葡萄酒標簽 collections 數據庫進行交互。 據我了解,pydantic model 的目的是充當發送到 API 的模式的“驗證者”。 因此,我添加 label 的 pydantic 模式如下:
from pydantic import BaseModel
from typing import Optional
class WineLabels(BaseModel):
name: Optional[str]
type: Optional[str]
year = Optional[int]
grapes = Optional[str]
country = Optional[str]
region = Optional[str]
price = Optional[float]
id = Optional[str]
所有字段都不會自動更新。 這等於 sqlalchemy model 因為我想手動添加所有字段。
所以我的問題是,假設我想創建一個按 ID 搜索的調用和另一個按名稱搜索的調用。 我不認為應該應用這些模式。 我應該創建另一個架構嗎? 我應該創建一個這樣的嗎?:
class SearchWineLabel(WineLabels):
id: str
是否應該為已經存在的模式無法實現的每個目的創建模式?
抱歉,但我無法理解其背后的邏輯。 謝謝!!
如果您想按 id 或 name 搜索,我不確定您是否甚至需要模式 - 在這些情況下,一個或多個 get 參數通常就足夠了(並且通常在語義上更好)。
在任何情況下,模式都將針對端點預期接收的內容而編寫,而不是通過使用以其他方式包含該字段的通用模式。 將模式視為給定資源和端點的輸入/輸出定義。
您通常希望有不同的模式來添加和更新(因為添加需要存在某些字段,而更新可能允許 null 或任何位置的缺失字段)。
Pydantic 模式將允許您在不編寫代碼的情況下表達這些差異,它將反映在 /docs 下生成的 api 文檔中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.