Building custom API views
DRF provides an APIView class that builds API functionality on top of Django’s View class. The APIView class differs from View by using DRF’s custom Request and Response objects and handling APIException exceptions to return the appropriate HTTP responses. It also has a built-in authentication and authorization system to manage access to views.
You are going to create a view for users to enroll in courses. Edit the api/views.py file of the courses application and add the following code highlighted in bold:
from django.db.models import Count
from django.shortcuts import get_object_or_404
from rest_framework import generics
from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.views import APIView
from courses.api.pagination import StandardPagination
from courses.api.serializers import CourseSerializer, SubjectSerializer
from courses.models import Course, Subject
# ...
class CourseEnrollView...