如何在FastAPI中生成响应说明

2024-10-02 14:16:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想生成代码中表示的所有可用响应的描述(以及代码200示例),如下所示

from typing import Any

import uvicorn
from fastapi import FastAPI, HTTPException

router = FastAPI()
from pydantic import BaseModel

class FileItemBase(BaseModel):
    current_project: str = "Test project"

class FileItemInDBBase(FileItemBase):
    id: int
    folder_path: str

    class Config:
        orm_mode = True

class 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)

我得到的就是这样的描述

description example

当我尝试这个方法时,我得到了一个错误响应(正如预期的那样)

response

我想要的是示例响应中包含的错误描述,如下所示。前端开发人员可以查看此描述并以正确的方式处理此类案例,而无需测试API

what I want to suceed

我知道如何在OpenAPI specs中实现它

有没有办法用FastAPI生成此描述


Tags: 代码fromimportproject示例anyclassbasemodel
1条回答
网友
1楼 · 发布于 2024-10-02 14:16:57

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

然后你可以把你的模型传过去。它将为该模型创建一个模式

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.")

enter image description here

相关问题 更多 >

    热门问题