在 FastAPI 应用程序中处理有条件要求的参数的最佳方法是什么?

What is the best way to handle conditionally required arguments in a FastAPI app?

我正在开发 FastAPI 应用程序。我有以下架构

class Address(BaseModel):
    address_string: str = Field(None)
    address_street: str = Field(None)
    addres_number: str = Field(None)

如果 address_street 和 addres_number 不存在,我希望有条件地要求字段 address_string,反之亦然,address_street 和 address_number如果 address_street 不存在,则为必填项。

目前,我通过将所有字段设为可选并使用 root_validator 检查一致性来管理此问题,并在相关字段的描述中记录此条件要求。

是否有更简洁的方法来管理 FastAPI 上的这个内置功能?

根验证器或可选必填字段上的验证器是最佳解决方案。

关于密码的类似示例 here