【问题标题】:In Python's FastAPI autogenerated OpenAPI/Swagger documentation page, how can I add more error http status codes?在 Python 的 FastAPI 自动生成的 OpenAPI/Swagger 文档页面中,如何添加更多错误 http 状态代码?
【发布时间】:2020-07-02 21:21:26
【问题描述】:

FastAPI 生成自动 swagger/openapi 文档。

https://fastapi.tiangolo.com/tutorial/response-status-code 的教程中有一个例子

from fastapi import FastAPI
app = FastAPI()

@app.post("/items/", status_code=201)
async def create_item(name: str):
    return {"name": name}

如果您运行它,.../docs 页面会显示两个 http 响应选项:

状态码 201 表示成功,状态码 422 表示验证错误

以上教程展示了本页图片)

我想在文档中记录更多 responsede status_code 描述,例如 代码 403,“禁止”

虽然我可以在代码中运行这样的异常

raise HTTPException(status_code=403, detail="Forbidden")

我还没有找到在自动生成的文档中描述它们的方法。

知道怎么做吗?

【问题讨论】:

    标签: fastapi


    【解决方案1】:

    这能解决您的问题吗?

    https://fastapi.tiangolo.com/advanced/additional-responses/

    编辑

    使用响应模型,您可以添加 API 可能返回的不同响应。

    from pydantic import BaseModel
    # Define your models here like
    class model200(BaseModel):
        message: str = ""
        
    @api.get("/my-route/", responses={200: {"response": model200}, 404: {"response": model404}, 500: {"response": model500}})
        async def api_route():
            return "I'm a wonderful route"
    

    这将提供您的响应模型示例,使用户与 api 交互更简单

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-15
      • 2022-08-04
      • 1970-01-01
      • 2020-02-10
      • 1970-01-01
      • 2018-05-06
      • 2021-10-24
      • 1970-01-01
      相关资源
      最近更新 更多