【发布时间】:2015-08-12 05:34:17
【问题描述】:
我目前有一些基于 Django REST 框架的视图代码。 我一直在使用客户异常类,但理想情况下我想使用内置的 Django REST 异常。
从下面的代码中,我觉得这可能不是最大限度地利用 REST 框架异常的最佳或最干净的方式。
有没有人有任何很好的例子来捕捉问题并使用 REST 内置异常干净地返回它们?
class JSONResponse(HttpResponse):
def __init__(self, data, **kwargs):
content = JSONRenderer().render(data)
kwargs['content_type'] = 'application/json'
super(JSONResponse, self).__init__(content, **kwargs)
def queryInput(request):
try:
auth_token = session_id = getAuthHeader(request)
if not auth_token:
return JSONResponse({'detail' : "fail", "error" : "No X-Auth-Token Found", "data" : None}, status=500)
if request.method:
data = JSONParser().parse(request)
serializer = queryInputSerializer(data=data)
if request.method == 'POST':
if serializer.is_valid():
input= serializer.data["input"]
fetchData = MainRunner(input=input,auth_token=auth_token)
main_data = fetchData.main()
if main_data:
return JSONResponse({'detail' : "success", "error" : None, "data" : main_data}, status=201)
return JSONResponse({'detail' : "Unknown Error","error" : True, "data" : None}, status=500)
except Exception as e:
return JSONResponse({'error' : str(e)},status=500)
【问题讨论】:
标签: django rest django-rest-framework