Routing Dasar & Parameter Dinamis (conf/routes)
Penjelasan
File `conf/routes` adalah tempat semua pemetaan URL didefinisikan, dengan format satu baris per route: HTTP method, path, lalu pemanggilan method controller. Play membaca file ini saat compile time dan menghasilkan kode routing yang type-safe — kesalahan penulisan route (misalnya controller yang tidak ada) langsung ketahuan saat kompilasi, bukan saat runtime. Parameter dinamis ditangkap langsung di path dengan sintaks `:namaParam`, dan Play otomatis mem-parsing tipenya sesuai signature method controller (String, Int, Long, dll). Untuk parameter yang boleh mengandung slash (`/`), dipakai sintaks `*namaParam` yang menangkap sisa path apa adanya.
Contoh Konsep
# conf/routes
GET / controllers.HomeController.index()
GET /produk controllers.ProdukController.daftar()
GET /produk/:id controllers.ProdukController.detail(id: Long)
GET /kategori/:nama/produk controllers.ProdukController.perKategori(nama: String)
GET /file/*path controllers.AssetController.serve(path: String)
Praktikum
Tuliskan route untuk GET /artikel/:slug yang memanggil ArtikelController.tampil dengan parameter slug bertipe String.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Urutkan route dari yang paling spesifik ke paling umum — Play mencocokkan route dari atas ke bawah, jadi route umum yang diletakkan di atas bisa "menelan" request yang seharusnya ditangani route spesifik di bawahnya.