簡體   English   中英

如何在 FastAPI 中生成響應描述

[英]How to generate response decriptions in FastAPI

我想生成所有可用響應的描述(以及代碼 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)

我得到的就是這樣的描述。

描述示例

當我嘗試這個時 - 我得到了一個錯誤響應(正如預期的那樣)。

回復

我想要的 - 是示例響應中包含的錯誤的描述,例如此處。 前端開發人員可以查看此描述並以正確的方式處理此類情況,而無需測試 API。

我想成功

我知道如何在 OpenAPI規范中制作它。

有沒有辦法用 FastAPI 生成這個描述?

您可以向路徑操作添加響應參數。

然后你可以在那里傳遞你的模型。 它將為該模型創建一個模式。

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

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM