根据标头以不同方式验证请求正文 FastAPI

问题描述 投票:0回答:1

我有一个名为 POST /account 的端点。请求主体验证和字段根据租户而变化。租户信息在标头中传递。

Tenant1 的请求正文示例

{
  "account_id": "1234_56", // Value to be String
  "account_name": "abcd"
}

Tenant2 的请求正文示例

{
  "account_id": 1234, // Value to be Integer
  "account_name": "abcd",
  "created_date": "DD/MM/YYYY" // This doesn't exist in Tenant1's body
}

我们如何为同一个端点声明不同的 BaseModel 类?

我们如何使用基于租户标头的 pydantic 来处理请求正文的验证?

我们怎样才能以不同的方式展示这一点?

python validation fastapi pydantic
1个回答
0
投票

尝试在 BaseModel 中将

created_date
设置为可选,如下所示

class Tenant(BaseModel):
    account_id: str
    account_name:str
    created_date: Optional[date] = None
© www.soinside.com 2019 - 2024. All rights reserved.