Debugging incoming HTTP GET query parameters and POST JSON payloads in Django REST Framework (DRF) requires inspecting request.query_params and parsed request.data inside APIView or ViewSet methods.

DRF API View Debugging Code Example

views.pypython
import logging
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
 
logger = logging.getLogger(__name__)
 
class DebugArticleAPIView(APIView):
    def get(self, request):
        # Inspect URL query parameters (e.g. ?page=2&category=tech)
        params = request.query_params
        logger.info(f"GET Query Params: {params}")
        return Response({"query_params": params})
 
    def post(self, request):
        # Inspect parsed JSON request body payload
        payload = request.data
        logger.info(f"POST JSON Payload: {payload}")
        
        # Example validation inspection
        if "title" not in payload:
            return Response({"error": "Missing 'title' field"}, status=status.HTTP_400_BAD_REQUEST)
            
        return Response({"status": "received", "data": payload})