fastapi 中自动生成的 openapi3 怎样设置二级目录

2021-12-31 18:17:36 +08:00
 skyone123

请问下,fastapi 中自动生成的 openapi3 怎样设置二级目录,多级目录,目前只有一级目录

https://i.bmp.ovh/imgs/2021/12/d6d8eb88c155a402.png

1803 次点击
所在节点    Python
7 条回复
zachlhb
2021-12-31 21:14:15 +08:00
问下你用这个框架如何统一返回格式呢,好像每个接口只能返回模型
skyone123
2021-12-31 21:51:09 +08:00
嗯,对,你先提前定义个 Response 的 model ,然后就可以统一返回了,形如
from typing import Generic, TypeVar, Optional, Union
from pydantic import Field
from pydantic.generics import GenericModel

Data = TypeVar('Data')


class ResultResponse(GenericModel, Generic[Data]):
"""
自定义返回模型,使用 generic-models 定义自定义模型
https://pydantic-docs.helpmanual.io/usage/models/#generic-models
所有返回数据都用如下格式,方便前端统一处理
{
code: 200,
message: '请求成功',
data: None
}
"""
code: int = Field(default=200, description='返回码')
message: str = Field(default='请求成功', description='消息内容')
result: Optional[Data]
trevorwang
2022-01-11 10:53:04 +08:00
```

@app.get('/users/{id}', tags=['hello'])
def user_detail(id: int):
filterd = list(filter(lambda i: i["id"] == id, users))
if filterd:
return filterd[0]
else:
raise HTTPException(404)

````
trevorwang
2022-01-11 10:53:55 +08:00
tags=['hello'] 这个是关键
skyone123
2022-01-12 17:32:16 +08:00
@trevorwang 这个使用 tags=['hello']会把这个接口放到 hello 一级目录下,但是我期望的是 hello ,hello1 ...能作为二级目录,最上面能有个一级目录 h1,有个层次,但是我发现 fastapi 自带的似乎不能这样做,只能所有目录都是平级的
skyone123
2022-01-12 17:37:54 +08:00
@trevorwang 就像这个 https://s3.bmp.ovh/imgs/2022/01/e2403f26fc83c6a2.jpg 我期望将 UploadFile 目录放在用户目录下在 fastapi 中不知如何实现
ixuuux
2022-01-18 08:17:09 +08:00
有相同的需求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825566

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX