我已将以下内容添加到 api 的 swagger 定义中。
value : BooleanEnum = Query ( False, alias="value")
class BooleanEnum(str, Enum):
true = "true"
false = "false"
@classmethod
def _missing_(cls, value):
return cls.__members__.get(value.lower(), None)
Swagger 文档仍然接受空值并将其显示为选择选项之一。不过,默认设置为 False。
如何将选择限制为 True 和 False,以便用户必须选择其中一个选项,并且不提供任何选择来接受 Null 响应。
这是 FastAPI 的常见行为,因为您为查询参数设置了默认值。因此,您的 API 接受三个值
true
、false
和 None
(由 false
替换)。如果您将其删除并改为 Query(..., alias="value")
,它将让用户选择两个枚举值之一,并且不允许发送 None
值。