如何解决如何在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 specs中实现它。
是否可以使用FastAPI生成此描述?
解决方法
您可以将响应参数添加到您的路径操作中。
然后,您可以在此处传递模型。它将为该模型创建一个模式。
const props = {
witnesses: [
{ account_id: 1,account_name: "Fred"},{ account_id: 2,account_name: "Joe" },{ account_id: 3 }]
};
const getName = witnessId => props.witnesses
.find(el => el.account_id === witnessId)?.account_name ?? "N/A";
console.log(getName(1))
console.log(getName(2))
console.log(getName(3))
console.log(getName(4))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。