Salah satu keuntungan class based API adalah fitur yang disediakan framework. Pada modul ini kita akan membahas penggunaan Mixins untuk membuat class based API.
Masih menggunakan backend/views.py, gunakan code berikut sebagai contoh penggunaan model mixins:
from .models import Article from .serializers import ArticleSerializer from rest_framework import mixins, generics class ArticleList(mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView): queryset = Article.objects.all() serializer_class = ArticleSerializer def get(self, request, *args, **kwargs): return self.list(request, *args, **kwargs) def post(self, request, *args, **kwargs): return self.create(request, *args, **kwargs) class ArticleDetails(mixins.RetrieveModelMixin, mixins.UpdateModelMixin, mixins.DestroyModelMixin, generics.GenericAPIView): queryset = Article.objects.all() serializer_class = ArticleSerializer lookup_field = 'slug' def get(self, request, *args, **kwargs): return self.retrieve(request, *args, **kwargs) def put(self, request, *args, **kwargs): return self.update(request, *args, **kwargs) def delete(self, request, *args, **kwargs): return self.destroy(request, *args, **kwargs)
Dapat dilihat, code semakin singkat dan clean. Jadi ini salah satu kelebihan menggunakan class based API.
Anda tidak perlu mengubah backend/urls.py, karena kita masih menggunakan class based API view.
Jika Anda jalankan, dapat dilihat terdapat perubahan pada form input.

Pada modul selanjutnya kita akan membahas mengenai generic class.