Route Parameter
Penjelasan
Route bisa menerima parameter dinamis lewat titik dua di path, mis. /produk/:id — nilainya diakses lewat c.Param("id"), SELALU string. Penamaan method c.Param() (bentuk tunggal) sama dengan Echo, beda dari c.Params() (bentuk jamak) di Fiber — perbedaan kecil yang gampang salah kalau baru pindah antar tiga framework Go ini.
Contoh Konsep
r.GET("/produk/:id", func(c *gin.Context) {
id := c.Param("id")
c.String(200, fmt.Sprintf("Menampilkan produk dengan id: %s", id))
})
r.GET("/kategori/:kategoriId/produk/:produkId", func(c *gin.Context) {
kategoriId := c.Param("kategoriId")
produkId := c.Param("produkId")
c.String(200, fmt.Sprintf("Kategori: %s, Produk: %s", kategoriId, produkId))
})
Praktikum
Buat route GET /artikel/:slug yang merespons teks "Artikel: {slug}" memakai c.Param("slug") dan fmt.Sprintf().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Gin juga mendukung wildcard parameter lewat *nama (mis. /file/*path menangkap SISA path setelah /file/, termasuk garis miring lagi di dalamnya) — beda dari :nama yang cuma menangkap SATU segmen path, berguna untuk kasus seperti serving nested file path.