Gin
Pengenalan Gin
Apa itu Gin, cara instalasi lewat go get, dan cara menjalankan server pertamamu.
Routing Dasar
Mendaftarkan endpoint lewat r.GET(), r.POST(), dan HTTP method lainnya.
Route Parameter
Menerima parameter dinamis dari URL lewat c.Param().
Query String & Request Body
Mengambil data dari query string lewat c.Query(), dan body JSON lewat c.ShouldBindJSON().
Response Methods: c.JSON() & gin.H
Berbagai cara mengirim response lewat c.String(), c.JSON(), dan shortcut gin.H untuk map data.
Middleware Dasar
Fungsi yang dijalankan sebelum handler route, dirangkai lewat r.Use() dan c.Next().
Group Routing
Mengelompokkan route dengan prefix dan middleware bersama lewat r.Group().
Built-in Middleware & CORS
Middleware Logger dan Recovery sudah aktif otomatis lewat gin.Default(), CORS lewat package gin-contrib/cors.
Validasi Input
Memvalidasi struct request otomatis lewat tag binding, terintegrasi langsung di ShouldBindJSON().
Error Handling
Mengumpulkan error lewat c.Error(), ditangani terpusat lewat middleware di akhir chain.
GORM: Model & Migration
Menghubungkan Gin ke database lewat GORM, sama seperti Echo dan Fiber.
GORM: Query
Merangkai query database lewat method chaining GORM, identik pemakaiannya di Echo dan Fiber.
CRUD REST API Lengkap
Menggabungkan Group, ShouldBindJSON, binding, dan GORM jadi endpoint CRUD lengkap.
Context: c.Set() & c.Get()
Menyimpan dan membaca data custom di request lewat c.Set() dan c.Get(), sama polanya dengan Echo.
File Upload
Menerima upload file lewat c.FormFile(), menyimpannya lewat c.SaveUploadedFile().
JWT Authentication Dasar
Melindungi endpoint dengan JSON Web Token, memakai package golang-jwt langsung di middleware custom.
Static Files
Menyajikan file statis (gambar, CSS, JS) lewat r.Static().
Graceful Shutdown
Mematikan server dengan aman lewat http.Server standar Go, dibungkus dari r.Handler().
Tugas Akhir
Latihan akhir menggabungkan Group, ShouldBindJSON, binding, dan GORM dalam satu REST API Catatan.