Django Rest Framework 에서 parameter 를 검사(validation)
Serializer 를 만들면 된다. ref. 1 에 자세하게 나와있다. 아래 예제의 경우는 parameter 가 json 형식으로 들어오는 것을 가지고 만들었다. Rest Framework 에서 json 으로 들어오는 parameter 는 request.data 에 들어가 있게 된다.
그래서 이 request.data 를 Serializer 의 parameter 로 넘겨주면 된다.
그리고 Serializer 는 json 이 들어오는 모양을 보고 만들어 주면 된다. nested json 형식에 대한 부분은 고려하지 않았다. ref. 1 을 살펴보면 nested json 에 대한 이야기도 있다.
from rest_framework import serializers from rest_framework.authentication import SessionAuthentication from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView class FactorsEarningRatioSerializer(serializers.Serializer): market = serializers.MultipleChoiceField( choices=['A', 'B'], allow_empty=False) portfolio_count = serializers.IntegerField(max_value=30) interval = serializers.ChoiceField(choices=['month', 'week', 'day']) factors = serializers.ListField() start = serializers.DateField(input_formats=['%Y/%m/%d']) class FactorsEarningRatioView(APIView): """ """ authentication_classes = (SessionAuthentication, ) permission_classes = (IsAuthenticated,) def post(self, request): """ :param request: { market: ["A"] portfolio_count: 5 interval: 'month' factors: ["f1", "f2"] } :return: """ serializer = FactorsEarningRatioSerializer(data=request.data) if not serializer.is_valid(): return Response(data={ 'error': { 'message': serializer.errors } })) return Response(data = { 'success': { 'data': serializer.validated_data } })
댓글 없음:
댓글 쓰기