自定义状态代码代替 500:使用 Postman 的 FastAPI 中的内部服务器错误

Customise Status codes in place of 500: Internal Server Error in FastAPI using Postman

我对使用 FastAPI 和邮递员还很陌生。当我发送带有正文(输入数据)的 POST 请求时,我收到成功代码 200 以及预期的响应。

现在,我想调整我的输入数据,使我的代码有意失败。这也在发生。但是状态代码即将变为 500 并且 Internal Server Error 正在响应中显示。

我想在每次失败的情况下手动给出一个状态代码,并在 Response 中提供一些相关的输出。如何实现这个目标?

详细的解决方案可以在 https://fastapi.tiangolo.com/tutorial/handling-errors/.

上找到

一个快速的解决方案是在使用 try 和 except 语句返回输出的函数中添加以下行:

try:
    output
except Exception:
    raise HTTPException(status_code=406, detail="New Error Found")

如果您想要JSON响应格式,这可能会有所帮助

from fastapi.responses import JSONResponse
from fastapi import status

def my_function():
    return JSONResponse(
                status_code=500,
                content={
                         "code": status.HTTP_500_INTERNAL_SERVER_ERROR,
                         "message": "Internal Server Error"}
            )