DRF-inclusions
A django-restframework renderer to side-load related resources.
One drawback of RESTful APIs is that you have to make many calls to fetch all
the related resources. DRF-inclusions provides a custom renderer allowing you
to sideload those in a single, original request.
DRF-inclusions allows you to specify which serializers to use for included
resources, and via the query string the client can specify which resources
should be included.
Features:
- arbitrary depth
- option to include all related resources
- de-duplication when the same object is found in multiple parent/related
objects
- an effort is made to retrieve related objects in as little DB queries as possible
Installation
pip install djangorestframework-inclusions
Usage
from rest_framework_inclusions.renderer import InclusionJSONRenderer
class MySerializer(...):
inclusion_serializers = {"some_field": OtherSerializer}
class MyViewSet(...):
...
renderer_classes = (InclusionJSONRenderer,)
See the tests
and testapp
for advanced usage examples.