Perbedaan antara ‘DefaultRouter’ dan ‘SimpleRouter’ pada Django Rest Framework

Antheiz
2 min readMar 3, 2024
Logo Django Rest Framework

DefaultRouter dan SimpleRouter adalah dua jenis router yang disediakan oleh Django Rest Framework (DRF) untuk membuat URL routing ke viewsets Anda dengan cara yang lebih mudah dan otomatis. Kedua router ini mirip dalam banyak hal, tetapi ada perbedaan utama yang membedakan penggunaan keduanya.

SimpleRouter

  • Fitur Dasar: SimpleRouter menyediakan routing untuk standar operasi CRUD dan hanya itu. Ini mencakup route untuk list (GET), create (POST), retrieve (GET dengan ID), update (PUT), dan destroy (DELETE).
  • Tanpa URL tambahan: SimpleRouter tidak menyediakan route tambahan di luar operasi CRUD dasar. Khususnya, tidak ada route untuk URL root API yang menampilkan daftar semua API yang tersedia, yang bisa menjadi halaman sambutan atau titik masuk utama ke API Anda.

DefaultRouter

  • Fitur Diperluas: DefaultRouter memperluas SimpleRouter dengan menambahkan URL root API. URL root ini bertindak sebagai halaman sambutan yang otomatis dihasilkan, yang mencantumkan semua route yang tersedia yang dibuat oleh router.
  • Mendukung Browsable API: Halaman sambutan ini sangat berguna ketika Anda menggunakan Browsable API dari DRF, memungkinkan pengembang dan pengguna API untuk menavigasi antar endpoint API yang tersedia secara visual dan interaktif.

Kapan Menggunakan Masing-Masing?

  • Gunakan SimpleRouter: Ketika Anda membutuhkan API yang sangat sederhana tanpa perlu halaman sambutan untuk API Anda dan ingin menjaga seminimal mungkin. Ini bisa berguna untuk API yang lebih kecil atau ketika Anda membangun microservice yang sederhana, di mana pengguna API sudah tahu endpoint yang tersedia atau Anda menyediakan dokumentasi API terpisah.
  • Gunakan DefaultRouter: Untuk kebanyakan kasus, terutama ketika Anda ingin memanfaatkan Browsable API dari DRF dan memberikan pengguna API halaman sambutan yang berguna dengan daftar semua route yang tersedia. Ini meningkatkan pengalaman pengguna dan memudahkan pengembangan dan debugging, karena memberikan gambaran umum tentang API yang tersedia tanpa harus merujuk ke dokumentasi terpisah.

Pada dasarnya, pilihan antara SimpleRouter dan DefaultRouter bergantung pada kebutuhan spesifik proyek Anda dan seberapa penting halaman sambutan atau titik masuk utama ke API Anda.

Referensi

https://www.django-rest-framework.org/api-guide/routers/

--

--

Antheiz

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