Merge branch 'master' of https://github.com/mdigger/gin into mdigger-master

This commit is contained in:
Manu Mtz-Almeida 2014-07-08 14:39:02 +02:00
commit 6b6ec5be77
5 changed files with 26 additions and 11 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
Godeps/*
!Godeps/Godeps.json

10
Godeps/Godeps.json generated Normal file
View File

@ -0,0 +1,10 @@
{
"ImportPath": "github.com/gin-gonic/gin",
"GoVersion": "go1.3",
"Deps": [
{
"ImportPath": "github.com/julienschmidt/httprouter",
"Rev": "7deadb6844d2c6ff1dfb812eaa439b87cdaedf20"
}
]
}

View File

@ -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")
}

15
gin.go
View File

@ -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

View File

@ -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,