gpt4 book ai didi

error-handling - django-rest-framework 自定义错误消息作为响应

转载 作者:行者123 更新时间:2023-12-01 09:55:53 27 4
gpt4 key购买 nike

对于我的 API,我需要使用 HTTP 200 和 JSON 内容来响应每个请求的错误。所以,而不是用这个来回应:

Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

我想这样做:

res = {"code": 400, "message": "Bad Requset"}
Response(res)

放置这种东西的最佳位置在哪里以及如何放置?在 SerializerRendererException?我需要捕获序列化程序可能抛出的每个异常以及我编写的自定义异常。

最佳答案

您可以使用状态码 200data=json.dumps(...),如下所示:

res = {"code": 400, "message": "Bad Requset"}
return Response(data=json.dumps(res), status=status.HTTP_200_OK)

关于在何处处理异常,RestFramework 已涵盖,请阅读 Exceptions - Django REST framework ,您可以创建一个自定义处理程序并执行此操作。

但是,由于 api 端点通常是基于每个 View 的,我个人建议创建一个自定义装饰器来包装您的 View 并在出现错误时返回此类响应。或者,如果您真的想对 ALL 错误返回相同的响应,那么遵循 RestFramework 文档并自定义您的错误处理应该是最佳做法。

希望这会有所帮助。

关于error-handling - django-rest-framework 自定义错误消息作为响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27727556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com