我正在阅读有关的教程路径参数验证.
我想允许字符串“a”“b”和“c”作为可能的参数值。我希望这些值显示在 OpenAPI 文档中(即FastAPI 的自动文档),这样 API 用户就不必猜测它们。如何使这些值显示在文档中?
这是我的实现:
from fastapi import FastAPI, HTTPException
app = FastAPI()
parameters = ["a", "b", "c"]
@app.get("/endpoint/{parameter}")
def endpoint(parameter: str):
if parameter not in parameters:
raise HTTPException(status_code=400, detail="parameter must be a, b, or c")
return {"parameter": parameter}
Option 1
你可以使用enums,通过创建一个Enum子类,如中所述FastAPI文档:
from enum import Enum
class MyParam(str, Enum):
a= "a"
b= "b"
c= "c"
@app.get("/{my_param}")
def index(my_param: MyParam):
return {"my_param": my_param}
Option 2
或者,您可以使用Literaltype,它允许您指定参数只能接受特定的Literal
values:
from typing import Literal
@app.get("/{my_param}")
def index(my_param: Literal["a", "b", "c"]):
return {"my_param": my_param}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)