DRF框架統一介面返回
阿新 • • 發佈:2021-07-20
在使用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:獲取資料失敗 | 操作失敗