Supporting Django REST Framework

Almost every backend application we build for our customers has some RESTful API component to it. Whether it’s exposing data to internal systems or making insights available to external applications Django REST Framework (DRF) allows us to build out scalable, secure APIs rapidly.

Django REST Framework enables a lot of “Don’t Repeat Yourself” (DRY) development, which makes long term maintainability easier for our teams and more cost-effective for our customers. DRF’s DRY principles allow us to rapidly build out useful endpoints and let our customers take over the APIs we develop with little fanfare.

For example, to provide a list, create, retrieve, update, and destroy route for managing devices associated with a connected vehicle data recording system, the code looks like:

from rest_framework import viewsets
from rest_framework.permissions import IsAdminUser
from app.connected_vehicle.serializers import DeviceSerializer
from app.connected_vehicle.models import Device

class DeviceViewSet(viewsets.ViewSet):
    queryset = Device.objects.all()
    serializer_class = DeviceSerializer
    permission_classes = [IsAdminUser]

We can then override specific endpoints of the device interface by doing something like:

class DeviceViewSet(viewsets.ViewSet):
    queryset = Device.objects.all()
    serializer_class = DeviceSerializer
    permission_classes = [IsAdminUser]

    def list(self, request):
        queryset = self.get_queryset()
        serializer = DeviceSerializer(queryset, many=True)
        return Response(serializer.data)

These features paired with DRFs integration with Swagger and other browsable API solutions makes it easy to deploy prototypes for initial use and refine the interfaces as additional requirements are defined.

DRF offers so much more, including permission management, caching, throttling, pagination, versioning, and testing tools. These features and the vibrant community surrounding the framework are why we’re proud to be an ongoing premium-tier sponsor 😊.

Django REST framework is a powerful and flexible toolkit for building Web APIs.

Blog Author:

Subscribe

Sign up for our Newsletter and stay up to date on the latest at ESG USA.  New blog posts, newsletters, case studies, and more.