为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 FastAPI 中生成响应描述

如何在 FastAPI 中生成响应描述

FFIVE 2023-07-27 09:51:04
我想生成所有可用响应的描述(以及代码 200 示例),这些响应在代码中表示,如下所示。from typing import Anyimport uvicornfrom fastapi import FastAPI, HTTPExceptionrouter = FastAPI()from pydantic import BaseModelclass FileItemBase(BaseModel):    current_project: str = "Test project"class FileItemInDBBase(FileItemBase):    id: int    folder_path: str    class Config:        orm_mode = Trueclass FileResponse(FileItemInDBBase):    pass@router.get("/", response_model=FileResponse)def example_code() -> Any:    """    # beautiful description    to demonstrate functionality    """    demo=True    if demo:        raise HTTPException(418, "That is a teapot.")if __name__ =="__main__":    uvicorn.run(router)我得到的就是这样的描述。当我尝试这个时 - 我收到错误响应(如预期)。我想要的是示例响应中包含的错误的描述,如下所示。前端开发人员可以查看此描述并以正确的方式处理此类情况,而无需测试 API。我知道如何在 OpenAPI规范内制作它。有没有办法用 FastAPI 生成这个描述?
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

您可以将响应参数添加到路径操作中。


然后你可以将你的模型传递到那里。它将为该模型创建一个架构。


class FileItemBase(BaseModel):

    current_project: str = "Test project"



@app.get("/", response_model=FileItemBase, responses={418: {"model": FileItemBase}})

def example_code():

    """

    # beautiful description

    to demonstrate functionality

    """

    demo = True

    if demo:

        raise HTTPException(418, "That is a teapot.")

//img1.sycdn.imooc.com//64c1cddc0001f9d309340403.jpg

查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信