Penjelasan singkat jenis Views pada Django Rest Framework

Antheiz
2 min readMar 3, 2024
Logo Django Rest Framework

Django Rest Framework (DRF) menyediakan beberapa jenis views yang dapat digunakan untuk membangun API, masing-masing dengan kegunaan dan tingkat abstraksi yang berbeda. Memahami perbedaan di antara mereka akan membantu Anda memilih pendekatan yang paling sesuai dengan kebutuhan proyek Anda. Berikut adalah gambaran umum dari beberapa jenis view yang paling umum digunakan dalam DRF:

APIView

  • Tingkat Abstraksi: Rendah
  • Kegunaan: APIView adalah kelas dasar untuk semua view di DRF dan memberikan fungsionalitas dasar untuk menangani request HTTP. Ini memungkinkan kontrol penuh atas logika view Anda, termasuk cara request diproses dan bagaimana respons dikembalikan.
  • Skenario Penggunaan: Cocok untuk kasus penggunaan yang sangat khusus di mana Anda perlu logika khusus yang tidak ditangani oleh view generik atau viewsets.

GenericAPIView

  • Tingkat Abstraksi: Menengah
  • Kegunaan: GenericAPIView memperluas APIView dengan menambahkan fungsionalitas umum yang dibutuhkan untuk mengakses dan memanipulasi data model. Hal ini termasuk penanganan querysets dan serialisasi data. Namun, Anda masih perlu menentukan metode untuk tindakan HTTP tertentu (seperti get, post, dll.).
  • Skenario Penggunaan: Cocok saat Anda ingin memanfaatkan beberapa fungsionalitas bawaan untuk interaksi dengan model tetapi tetap memerlukan kontrol atas metode HTTP tertentu.

Mixins

  • Tingkat Abstraksi: Menengah-Tinggi
  • Kegunaan: Mixins seperti ListModelMixin, CreateModelMixin, RetrieveModelMixin, UpdateModelMixin, dan DestroyModelMixin memberikan implementasi untuk operasi CRUD standar. Mereka dirancang untuk digunakan dengan GenericAPIView untuk memperkaya view dengan tindakan spesifik.
  • Skenario Penggunaan: Sangat berguna ketika Anda membutuhkan operasi CRUD standar pada objek model dan ingin mengurangi jumlah kode boilerplate.

Generic Views

  • Tingkat Abstraksi: Tinggi
  • Kegunaan: Generic views seperti ListAPIView, RetrieveAPIView, CreateAPIView, DestroyAPIView, dan UpdateAPIView menggabungkan GenericAPIView dengan satu atau lebih mixins untuk menyediakan view siap pakai untuk tindakan CRUD umum.
  • Skenario Penggunaan: Ideal untuk kasus di mana Anda membutuhkan implementasi standar dari operasi CRUD tanpa perlu menulis banyak kode kustom.

ViewSets

  • Tingkat Abstraksi: Sangat Tinggi
  • Kegunaan: ViewSet mengabstraksi kumpulan operasi yang berkaitan dengan model tertentu menjadi satu kelas. ModelViewSet khususnya, menggabungkan fungsionalitas dari semua mixins CRUD untuk menyediakan satu kelas yang menangani semua operasi CRUD standar.
  • Skenario Penggunaan: Cocok untuk kasus di mana Anda ingin API yang sepenuhnya CRUD dengan kode minimal. ViewSets sangat berguna ketika digunakan bersama dengan Router DRF, yang otomatis menghasilkan URL berdasarkan konvensi.

Masing-masing jenis view ini menawarkan tingkat fleksibilitas dan kenyamanan yang berbeda. Memilih antara mereka bergantung pada kebutuhan spesifik proyek Anda, seberapa banyak kontrol khusus yang Anda perlukan, dan seberapa banyak kode boilerplate yang ingin Anda kurangi.

Referensi

https://www.django-rest-framework.org/api-guide/views/
https://www.django-rest-framework.org/api-guide/generic-views/
https://www.django-rest-framework.org/api-guide/viewsets/

--

--

Antheiz

Linuxer from Jayapura, Papua. Interested in backend. In my spare time, I love building open-source products.