我想生成所有可用響應(yīng)的描述(以及代碼 200 示例),這些響應(yīng)在代碼中表示,如下所示。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)我得到的就是這樣的描述。當(dāng)我嘗試這個(gè)時(shí) - 我收到錯(cuò)誤響應(yīng)(如預(yù)期)。我想要的是示例響應(yīng)中包含的錯(cuò)誤的描述,如下所示。前端開發(fā)人員可以查看此描述并以正確的方式處理此類情況,而無需測(cè)試 API。我知道如何在 OpenAPI規(guī)范內(nèi)制作它。有沒有辦法用 FastAPI 生成這個(gè)描述?
1 回答

GCT1015
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以將響應(yīng)參數(shù)添加到路徑操作中。
然后你可以將你的模型傳遞到那里。它將為該模型創(chuàng)建一個(gè)架構(gòu)。
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.")
添加回答
舉報(bào)
0/150
提交
取消