DRF框架统一接口返回
在使用Django REST Framework框架过程中,简单的将返回接口进行封装,接口返回规范在最后面
# 可以放在utils或者common公共文件里面
class MyResponse(object):
"""api返回的信息的封装"""
def __init__(self):
self.status = 200
self.message = "请求成功"
self.sysMsg = "success"
@property
def get_dict(self):
return self.__dict__
----------------------------------------
使用:
from rest_framework.response import Response
from rest_framework.generics import GenericAPIView, ListCreateAPIView, RetrieveUpdateDestroyAPIView
from users.models import Department
from users.serializers import DepartmentSerializer
from utils.utils import MyResponse
class DepartmentGenericAPIView(GenericAPIView):
""" GenericAPIView的视图 """
queryset = Department.objects.all()
serializer_class = DepartmentSerializer
def get(self, request, pk):
response = MyResponse()
# 异常捕获
try:
queryset = self.get_queryset().get(id=pk)
except Department.DoesNotExist:
response.status = 100
response.message = "未找到相应的部门"
response.sysMsg = "error"
return Response(response.get_dict)
deps = self.get_serializer(instance=queryset)
response.data = deps.data
return Response(response.get_dict)
标准的接口格式:
response:
----------------------------------------
{
status: 200, // 详见【status】
data: {
code: 1, // 详见【code】
data: {} || [], // 数据
message: '成功', // 存放响应信息提示,显示给客户端用户【须语义化中文提示】
sysMsg: 'success' // 存放响应信息提示,调试使用,中英文都行
... // 其它参数,如 total【总记录数】等
},
message: '成功', // 存放响应信息提示,显示给客户端用户【须语义化中文提示】
sysMsg: 'success' // 存放响应信息提示,调试使用,中英文都行
}
----------------------------------------
【status】:
200: OK 400: Bad Request 500:Internal Server Error
401:Unauthorized
403:Forbidden
404:Not Found
【code】:
1: 获取数据成功 | 操作成功 0:获取数据失败 | 操作失败

浙公网安备 33010602011771号