Membaca data spesifik di struct dengan Gofiber
Berikut adalah langkah-langkahnya:
Tambahkan Field ID pada Struct Product: Tambahkan field
ID
(string atau integer) pada structProduct
untuk menyimpan ID produk.Perbarui Fungsi initProducts(): Perbarui fungsi
initProducts()
untuk menambahkan ID untuk setiap produk.Tambahkan Route
/product/:id
: Tambahkan route/product/:id
pada aplikasi Anda untuk menampilkan detail produk berdasarkan ID.Implementasikan Logika untuk Menampilkan Detail Produk: Di dalam handler untuk route
/product/:id
, temukan produk yang sesuai dengan ID yang diberikan dan kirim detail produk tersebut sebagai respons.
Berikut Implementasinya:
package main
import (
"strconv"
"github.com/gofiber/fiber/v2"
)
// Struct Product
type Product struct {
ID int `json:"id"`
Name string `json:"name"`
Price float64 `json:"price"`
Stock int `json:"stock"`
}
func main() {
// Inisialisasi objek Fiber
app := fiber.New()
products := []Product{
{1, "Product A", 10.99, 100},
{2, "Product B", 20.50, 50},
{3, "Product C", 15.75, 75},
}
// Route untuk menampilkan data produk
app.Get("/products", func(c *fiber.Ctx) error {
// Kirim data produk dalam format JSON
return c.JSON(products)
})
// Route untuk menampilkan detail produk berdasarkan ID
app.Get("/product/:id", func(c *fiber.Ctx) error {
// Dapatkan ID produk dari parameter route
paramId := c.Params("id")
id, _ := strconv.Atoi(paramId)
// Temukan produk dengan ID yang sesuai
var foundProduct Product
for _, p := range products {
if p.ID == id {
foundProduct = p
break
}
}
// Kirim detail produk dalam format JSON
return c.JSON(foundProduct)
})
// Jalankan server di port tertentu
app.Listen(":3000")
}
Untuk mengakses gunahkan endpoint berikut dibrowser:
http://localhost:3000/product/1
Dalam kode di atas, kita telah menambahkan field ID
pada struct Product
, dan setiap produk sekarang memiliki ID unik. Kemudian, kita menambahkan route /product/:id
untuk menampilkan detail produk berdasarkan ID. Di dalam handler untuk route tersebut, kita mencari produk dengan ID yang sesuai dari daftar produk yang sudah ada, dan mengirim detail produk tersebut sebagai respons.
Last updated