Routing
Gin menyediakan sistem routing yang powerful yang dibangun di atas httprouter untuk pencocokan URL berperforma tinggi. Di balik layar, httprouter menggunakan radix tree (juga disebut compressed trie) untuk menyimpan dan mencari rute, yang berarti pencocokan rute sangat cepat dan tidak memerlukan alokasi memori per pencarian. Ini menjadikan Gin salah satu framework web Go tercepat yang tersedia.
Rute didaftarkan dengan memanggil metode HTTP pada engine (atau grup rute) dan menyediakan pola URL beserta satu atau lebih fungsi handler:
package main
import ( "net/http"
"github.com/gin-gonic/gin")
func main() { router := gin.Default()
router.GET("/hello", func(c *gin.Context) { c.String(http.StatusOK, "Hello, World!") })
router.POST("/users", func(c *gin.Context) { name := c.PostForm("name") c.JSON(http.StatusCreated, gin.H{"user": name}) })
router.Run(":8080")}Dalam bagian ini
Halaman-halaman di bawah ini membahas setiap topik routing secara detail:
- Menggunakan metode HTTP — Mendaftarkan rute untuk GET, POST, PUT, DELETE, PATCH, HEAD, dan OPTIONS.
- Parameter di path — Menangkap segmen dinamis dari path URL (mis.
/user/:name). - Parameter querystring — Membaca nilai query string dari URL permintaan.
- Query dan post form — Mengakses data query string dan POST form dalam handler yang sama.
- Map sebagai querystring atau postform — Mengikat parameter map dari query string atau POST form.
- Form multipart/urlencoded — Mem-parse body
multipart/form-datadanapplication/x-www-form-urlencoded. - Upload file — Menangani upload file tunggal dan banyak.
- Mengelompokkan rute — Mengorganisasi rute di bawah prefix umum dengan middleware bersama.
- Redirect — Melakukan redirect HTTP dan tingkat router.