Bind header
ShouldBindHeader melakukan bind header request HTTP langsung ke struct menggunakan tag struct header. Ini berguna untuk mengekstrak metadata seperti batas rate API, token autentikasi, atau header domain kustom dari request yang masuk.
package main
import ( "net/http"
"github.com/gin-gonic/gin")
type testHeader struct { Rate int `header:"Rate"` Domain string `header:"Domain"`}
func main() { r := gin.Default()
r.GET("/", func(c *gin.Context) { h := testHeader{}
if err := c.ShouldBindHeader(&h); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return }
c.JSON(http.StatusOK, gin.H{"Rate": h.Rate, "Domain": h.Domain}) })
r.Run(":8080")}Uji coba
# Pass custom headerscurl -H "Rate:300" -H "Domain:music" http://localhost:8080/# Output: {"Domain":"music","Rate":300}
# Missing headers -- zero values are usedcurl http://localhost:8080/# Output: {"Domain":"","Rate":0}