fastapi手动添加swagger文档描述

发布时间 2023-10-11 23:45:52作者: CJTARRR

fastapi手动添加swagger文档描述

"""
在正常开发过程中,fastapi会自动地将正确响应(status=200)和输入校验失败响应(status=422)添加到文档中.
当有自定义的响应描述添加到文档中时,就需要我们手动添加到路径函数的:responses参数中.
用户可以按照openapi的语法,将响应的描述信息添加到这个参数中,fastapi会正确地将他们渲染出来.
"""

# 示例:

# 假设我们需要添加描述:当响应状态码为200时,响应头会包含"X-Token"这个参数

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class UserOut(BaseModel):
   name: str


@app.get('/user', response_model=UserOut,
        responses={
            200: {'headers':
                      {"X-token": {"type": "string", "description": "用户token"}}
                  }
        })
async def test(user_name: str):
   msg = {'name': user_name}
   return msg


if __name__ == '__main__':
   import uvicorn

   uvicorn.run(app='test:app', workers=1)

# 文档展示

 

"""
可以看到,文档中即包含了fastapi自动生成的内容,也包含了我们手动添加的内容,所以我们不需要完全重新编排内容给responses参数.
综上,基于openapi语法,我们可以很方便地添加自定义文章内容到fastapi文档中.
"""

参考连接:
   https://fastapi.tiangolo.com/zh/advanced/additional-responses/?h=responses