加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

错误处理 – 作为响应的django-rest-framework自定义错误消息

发布时间:2020-12-20 11:39:44 所属栏目:Python 来源:网络整理
导读:对于我的API,我需要使用HTTP 200和 JSON内容响应每个请求的错误.所以不要回答: Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST) 我想这样做: res = {"code": 400,"message": "Bad Requset"}Response(res) 放这种东西的最佳地点在哪里以及
对于我的API,我需要使用HTTP 200和 JSON内容响应每个请求的错误.所以不要回答:

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

我想这样做:

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

放这种东西的最佳地点在哪里以及如何?在Serializer中,Renderer,Exception?我需要捕获序列化程序可能抛出的每个异常以及我编写的自定义异常.

解决方法

您可以使用状态代码200和data = 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端点通常是每个视图基础,我个人建议创建一个自定义装饰器来包装您的视图并在出现错误时返回此类响应.
或者,如果您真的想要对所有错误返回相同的响应,那么请遵循RestFramework文档并自定义您的错误处理应该是最佳实践.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读