Is it a good practice to use serializer as query parameters validators?

Viewed 2728

Serializer would not be used for its intended purpose of creating some django model but it would be used for query parameters validation, creation of filtering query to elasticsearch, swagger documentation describing API.

from rest_framework import views, serializers, fields
from rest_framework.response import Response


class TestQueryParams(serializers.Serializer):
    id = fields.IntegerField(min_value=0)
    date = fields.DateField(format='%Y%m%d')


class TestView(views.APIView):
    def get(self, request):
        qp = TestQueryParams(data=request.query_params)
        qp.is_valid(raise_exception=True)
        # parameters would not be used to create some model
        # but they would be used to get data
        return Response({'some': 'data'})
1 Answers
Related