diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..96c135f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +Godeps/* +!Godeps/Godeps.json diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json new file mode 100644 index 0000000..d963b7e --- /dev/null +++ b/Godeps/Godeps.json @@ -0,0 +1,10 @@ +{ + "ImportPath": "github.com/gin-gonic/gin", + "GoVersion": "go1.3", + "Deps": [ + { + "ImportPath": "github.com/julienschmidt/httprouter", + "Rev": "7deadb6844d2c6ff1dfb812eaa439b87cdaedf20" + } + ] +} diff --git a/README.md b/README.md index acba80f..63c67e8 100644 --- a/README.md +++ b/README.md @@ -84,20 +84,22 @@ func main() { ```go func main() { r := gin.Default() - + + // This handler will match /user/john but will not match neither /user/ or /user r.GET("/user/:name", func(c *gin.Context) { name := c.Params.ByName("name") message := "Hello "+name c.String(200, message) }) - r.GET("/user/:name/:action", func(c *gin.Context) { + // However, this one will match /user/john and also /user/john/send + r.GET("/user/:name/*action", func(c *gin.Context) { name := c.Params.ByName("name") action := c.Params.ByName("action") message := name + " is " + action c.String(200, message) }) - + // Listen and server on 0.0.0.0:8080 r.Run(":8080") } diff --git a/gin.go b/gin.go index 1c4b019..40f92e0 100644 --- a/gin.go +++ b/gin.go @@ -17,12 +17,13 @@ import ( ) const ( - AbortIndex = math.MaxInt8 / 2 - MIMEJSON = "application/json" - MIMEHTML = "text/html" - MIMEXML = "application/xml" - MIMEXML2 = "text/xml" - MIMEPlain = "text/plain" + AbortIndex = math.MaxInt8 / 2 + MIMEJSON = "application/json" + MIMEHTML = "text/html" + MIMEXML = "application/xml" + MIMEXML2 = "text/xml" + MIMEPlain = "text/plain" + MIMEPOSTForm = "application/x-www-form-urlencoded" ) const ( @@ -413,7 +414,7 @@ func (c *Context) Bind(obj interface{}) bool { var b binding.Binding ctype := filterFlags(c.Req.Header.Get("Content-Type")) switch { - case c.Req.Method == "GET": + case c.Req.Method == "GET" || ctype == MIMEPOSTForm: b = binding.Form case ctype == MIMEJSON: b = binding.JSON diff --git a/logger.go b/logger.go index da35ffb..5c018a4 100644 --- a/logger.go +++ b/logger.go @@ -69,7 +69,7 @@ func Logger() HandlerFunc { latency := end.Sub(start) stdlogger.Printf("[GIN] %v |%s %3d %s| %12v | %s %4s %s\n", end.Format("2006/01/02 - 15:04:05"), - color, c.Writer.Status(), reset, + color, code, reset, latency, requester, c.Req.Method, c.Req.URL.Path,