gpt4 book ai didi

python-3.x - 固定字符串或任何有效整数的 FastAPI 路径参数验证

转载 作者:行者123 更新时间:2023-12-05 02:41:04 24 4
gpt4 key购买 nike

我需要从 FastAPI 端点的 URL 路径解析 version 参数。 version 参数的有效值是固定字符串,例如active 或任何整数,例如1

是否有一种优雅的方法可以让 FastAPIpydantic 使用此类规则验证此路径参数,以便我不必手动执行验证?

@app.get("/{version}")
def endpoint(version):
# version could be either 'active' or valid integer e.g. 1
return {"version": version}

最佳答案

您要做的(在两种类型之间进行选择)是 Union。

例子:

from typing import Union
from pydantic import BaseModel

class Version(BaseModel):
version: Union[int, str]

警告! Union 尝试将参数类型与 Union 的给定顺序相匹配,并在第一次匹配时停止,即在下面的示例中,它将首先尝试找到一个 INT,然后再找到一个 STR。在某些情况下,这非常重要。

然后是想要有一个固定值的事实。这是文字。

Union 和 Literal 一起给出:

from typing import Union, Literal
from pydantic import BaseModel

class Version(BaseModel):
version: Union[Literal['active'], int]

关于python-3.x - 固定字符串或任何有效整数的 FastAPI 路径参数验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68302044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com