gpt4 book ai didi

python - 如何添加文档以在快速 api View 上发布 body 模型?

转载 作者:行者123 更新时间:2023-12-04 14:12:55 25 4
gpt4 key购买 nike

例如,假设我们有两个端点:

class FooRequest(BaseModel):
data: str


@router.post("/foo/", response_model=FooRequest)
async def foo_view(data: FooRequest) -> FooRequest:
...


@router.get("/bar/", response_model=FooRequest)
async def bar_view(data: str = Query(..., description="Data param")) -> FooRequest:
...

在 swagger UI /bar/端点将具有正确记录的查询参数和 /foo/将有一些没有任何描述的帖子正文的抽象示例。
那么我如何记录发布后的 body 模型?

最佳答案

您可以使用 Config 声明 Pydantic 模型的示例。和 schema_extra .

class FooRequest(BaseModel):
data: str

class Config:
schema_extra = {
"FooRequest": {
"name": "Foo Request",
"description": "Data param",
}
}

还有 Field您为 JSON 架构声明额外信息。
from pydantic import Field

...

class FooRequest(BaseModel):
data: str = Field(..., example="Data param for Foo Request")
description: Optional[str] = Field(None, example="Description for Foo")

以同样的方式您可以将额外信息传递给 Field , 你可以用 Path 做同样的事情, Query , Body , 等等。
例如,您可以将正文请求的示例传递给 Body :
from fastapi import Body

...

class FooRequest(BaseModel):
data: str


@router.post("/foo/", response_model=FooRequest)
async def foo_view(data: FooRequest = Body(
...,
example={
"name": "Foo Request",
"description": "data param",
},
),
) -> FooRequest:

关于python - 如何添加文档以在快速 api View 上发布 body 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62915625/

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