浏览代码

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)