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
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})
Comments and corrections