自定义状态代码代替 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"}
)
我对使用 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"}
)