Menggunakan Generics Viewset

Dengan menggunakan ViewSet, Anda dapat menggabungkan logic untuk kumpulan view yang berhubungan dalam sebuah class.

Contoh, Anda tidak perlu membuat class ArticleList dan ArticleDetails, Anda cukup membuat satu class saja.

Pada modul ini kita akan bahas penggunaan generic viewset dan mixins.

Buka file backend/views.py, gunakan code berikut:

from .models import Article
from .serializers import ArticleSerializer

from rest_framework import viewsets, mixins

class ArticleViewSet(viewsets.GenericViewSet, mixins.ListModelMixin, 
                     mixins.CreateModelMixin, mixins.RetrieveModelMixin, 
                     mixins.UpdateModelMixin, mixins.DestroyModelMixin):
    
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer
    lookup_field = 'slug'

Kemudian buka file backend/urls.py, update seperti kode dibawah:

from django.urls import path, include
from .views import ArticleViewSet
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register('articles', ArticleViewSet, basename="articles")

urlpatterns = [
    path('', include(router.urls))
]

Jika Anda buka melalui browser, sesuai ekspektasi, API berjalan dengan baik.

Sharing is caring: