소스 검색

Adds Bind() middleware

Manu Mtz-Almeida 10 년 전
부모
커밋
ab447bb188
1개의 변경된 파일12개의 추가작업 그리고 0개의 파일을 삭제
  1. 12 0
      utils.go

+ 12 - 0
utils.go

@@ -13,6 +13,18 @@ import (
 	"strings"
 )
 
+const BindKey = "_gin-gonic/gin/bindkey"
+
+func Bind(val interface{}) HandlerFunc {
+	typ := reflect.ValueOf(val).Type()
+	return func(c *Context) {
+		obj := reflect.New(typ).Interface()
+		if c.Bind(obj) == nil {
+			c.Set(BindKey, obj)
+		}
+	}
+}
+
 func WrapF(f http.HandlerFunc) HandlerFunc {
 	return func(c *Context) {
 		f(c.Writer, c.Request)