Menggunakan Mixins Untuk Class Based API

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.

Sharing is caring: