Performance: Browsable API interface
This affects the initial page load speed and interaction responsiveness of the API documentation interface.
Jump into concepts and practice - no test required
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
]
}REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer',
]
}| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Without Browsable API | Minimal DOM nodes | 0-1 reflows | Low paint cost | [OK] Good |
| With Browsable API | Additional DOM nodes for UI | 1-2 reflows | Moderate paint cost | [!] Caution |
Browsable API interface in Django REST Framework?rest_framework is added to INSTALLED_APPS.rest_framework to INSTALLED_APPS -> Option Bfrom rest_framework.views import APIView
from rest_framework.response import Response
class HelloView(APIView):
def get(self, request):
return Response({"message": "Hello, world!"})Response object from rest_framework.response to render data properly.BrowsableAPIRenderer.renderer_classes in your API view to use your custom renderer that adds headers or changes form layout.renderer_classes in your view to use a custom renderer subclassing BrowsableAPIRenderer -> Option A