ヘッダーのバインド
ShouldBindHeader は、header 構造体タグを使用してHTTPリクエストヘッダーを直接構造体にバインドします。これは、受信リクエストからAPIレート制限、認証トークン、カスタムドメインヘッダーなどのメタデータを抽出する場合に便利です。
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")}テスト
# 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}