تخطَّ إلى المحتوى

ربط الترويسة

ShouldBindHeader يربط ترويسات طلب HTTP مباشرة في هيكل باستخدام علامات الهيكل header. هذا مفيد لاستخراج البيانات الوصفية مثل حدود معدل 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")
}

اختبره

Terminal window
# Pass custom headers
curl -H "Rate:300" -H "Domain:music" http://localhost:8080/
# Output: {"Domain":"music","Rate":300}
# Missing headers -- zero values are used
curl http://localhost:8080/
# Output: {"Domain":"","Rate":0}

انظر أيضاً