9aa870f108 
					 
					
						
						
							
							Adjust Render.Redirect test case ( #2053 )  
						
						 
						
						
						
						
					 
					
						2019-09-10 17:16:37 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b8b2fada5c 
					 
					
						
						
							
							fix GetPostFormMap ( #2051 )  
						
						 
						
						
						
						
					 
					
						2019-09-10 14:32:30 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f38c30a0d2 
					 
					
						
						
							
							feat(binding): add DisallowUnknownFields() in gin.Context.BindJSON() ( #2028 )  
						
						 
						
						
						
						
					 
					
						2019-09-06 13:56:59 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b80d675864 
					 
					
						
						
							
							Added specific installation instructions for Mac ( #2011 )  
						
						 
						
						... 
						
						
						
						Made it more clear for Mac users using Go version 1.8 and greater. 
						
						
					 
					
						2019-09-05 21:50:54 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1acb3fb30a 
					 
					
						
						
							
							upgrade validator version to v9 ( #1015 )  
						
						 
						
						... 
						
						
						
						* upgrade validator version to v9
* Update vendor.json
* Update go.mod
* Update go.sum
* fix
* fix
* fix bug
* Update binding_test.go
* Update validate_test.go
* Update go.sum
* Update go.mod
* Update go.sum
* Update go.mod
* Update go.sum 
						
						
					 
					
						2019-09-05 21:39:56 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c3f7fc399a 
					 
					
						
						
							
							chore: support go1.13 ( #2038 )  
						
						 
						
						... 
						
						
						
						* chore: support go1.13
* chore: remove env var for go1.13 
						
						
					 
					
						2019-09-04 12:26:50 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						01ca625b98 
					 
					
						
						
							
							Fixed JSONP format (added semicolon) ( #2007 )  
						
						 
						
						... 
						
						
						
						* Fixed JSONP format (added semicolon)
* render_test fix 
						
						
					 
					
						2019-09-02 20:18:08 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6ece26c7c5 
					 
					
						
						
							
							Add Header bind methods to README ( #2025 )  
						
						 
						
						
						
						
					 
					
						2019-08-30 10:58:55 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a22377b09b 
					 
					
						
						
							
							logger_test: color ( #1926 )  
						
						 
						
						... 
						
						
						
						* logger color: string literals
* logger_test: color 
						
						
					 
					
						2019-08-29 08:32:22 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9a820cf005 
					 
					
						
						
							
							Bump github.com/mattn/go-isatty library to support Risc-V ( #2019 )  
						
						 
						
						... 
						
						
						
						Signed-off-by: CarlosEDP <me@carlosedp.com > 
						
						
					 
					
						2019-08-16 09:10:44 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5612cadb73 
					 
					
						
						
							
							Remove unused code ( #2013 )  
						
						 
						
						
						
						
					 
					
						2019-08-10 09:26:58 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						20440b96b9 
					 
					
						
						
							
							Support negative Content-Length in DataFromReader ( #1981 )  
						
						 
						
						... 
						
						
						
						You can get an http.Response with ContentLength set to -1 (Chunked encoding), so
for DataFromReader to be useful for those we need to support that. 
						
						
					 
					
						2019-08-05 09:42:59 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						461df9320a 
					 
					
						
						
							
							Simplify code ( #2004 )  
						
						 
						
						... 
						
						
						
						- Use buf.String instead of converison
- Remove redundant return 
						
						
					 
					
						2019-07-27 09:06:37 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						502c898d75 
					 
					
						
						
							
							binding: support unix time ( #1980 )  
						
						 
						
						... 
						
						
						
						* binding: support unix time
ref:#1979
* binding: support unix time
add test file
modify readme
```golang
package main
import (
        "fmt"
        "github.com/gin-gonic/gin"
        "time"
)
type shareTime struct {
        CreateTime time.Time `form:"createTime" time_format:"unixNano"`
        UnixTime   time.Time `form:"unixTime" time_format:"unix"`
}
func main() {
        r := gin.Default()
        unix := r.Group("/unix")
        testCT := time.Date(2019, 7, 6, 16, 0, 33, 123, time.Local)
        fmt.Printf("%d\n", testCT.UnixNano())
        testUT := time.Date(2019, 7, 6, 16, 0, 33, 0, time.Local)
        fmt.Printf("%d\n", testUT.Unix())
        unix.GET("/nano", func(c *gin.Context) {
                s := shareTime{}
                c.ShouldBindQuery(&s)
                if !testCT.Equal(s.CreateTime) {
                        c.String(500, "want %d got %d", testCT.UnixNano(), s.CreateTime)
                        return
                }
                c.JSON(200, s)
        })
        unix.GET("/sec", func(c *gin.Context) {
                s := shareTime{}
                c.ShouldBindQuery(&s)
                if !testUT.Equal(s.UnixTime) {
                        c.String(500, "want %d got %d", testCT.Unix(), s.UnixTime)
                        return
                }
                c.JSON(200, s)
        })
        r.Run()
}
```
* Contraction variable scope 
						
						
					 
					
						2019-07-10 13:02:40 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0349de518b 
					 
					
						
						
							
							upgrade github.com/ugorji/go/codec ( #1969 )  
						
						 
						
						
						
						
					 
					
						2019-07-10 06:20:20 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e602d524cc 
					 
					
						
						
							
							Typo ( #1971 )  
						
						 
						
						
						
						
					 
					
						2019-07-04 07:57:52 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6f7276fdc1 
					 
					
						
						
							
							Update CHANGELOG.md ( #1966 )  
						
						 
						
						... 
						
						
						
						typo fix 
						
						
					 
					
						2019-06-30 08:55:09 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b67bc8f005 
					 
					
						
						
							
							Gin1.5 bytes.Buffer to strings.Builder ( #1939 )  
						
						 
						
						... 
						
						
						
						* Replace bytes.Buffer to strings.Builder
* Merge the latest changes
* Update errors.go 
						
						
					 
					
						2019-06-29 20:43:32 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3f53a58d4a 
					 
					
						
						
							
							Add user case: brigade ( #1937 )  
						
						 
						
						
						
						
					 
					
						2019-06-29 00:09:53 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f65018d7b1 
					 
					
						
						
							
							Bugfix for the FullPath feature ( #1919 )  
						
						 
						
						... 
						
						
						
						* worked with more complex situations
 * the original pr not work when and a short route with the same prefix
 to some already added routes 
						
						
					 
					
						2019-06-28 23:54:52 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						fc920dc561 
					 
					
						
						
							
							Drop Support for go1.8 and go1.9 ( #1933 )  
						
						 
						
						
						
						
					 
					
						2019-06-28 23:43:07 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						46acb91996 
					 
					
						
						
							
							modify readme example code ( #1961 )  
						
						 
						
						
						
						
					 
					
						2019-06-28 09:34:14 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						31342fc03f 
					 
					
						
						
							
							fix README.md code bug and Change map to gin.H ( #1963 )  
						
						 
						
						... 
						
						
						
						``` go
func main() {
        r := gin.Default()
        // r.GET("/JSONP?callback=x", func(c *gin.Context) { // old
        r.GET("/JSONP", func(c *gin.Context) {    // new
                data := gin.H{
                        "foo": "bar",
                }
                //callback is x
                // Will output  :   x({\"foo\":\"bar\"})
                c.JSONP(http.StatusOK, data)
        })
        // Listen and serve on 0.0.0.0:8080
        r.Run(":8080")
}
// client
// curl http://127.0.0.1:8080/JSONP?callback=x 
// old output
// 404 page not found
// new output
// x({"foo":"bar"})
```
Most of the sample code in the documentation map[string]interface{} is represented by gin.H.
gin.H is a very important place for me to like gin, can write a lot less code 
						
						
					 
					
						2019-06-28 09:25:19 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f98b339b77 
					 
					
						
						
							
							support bind http header param  #1956  ( #1957 )  
						
						 
						
						... 
						
						
						
						* support bind http header param #1956 
update #1956 
```
package main
import (
	"fmt"
	"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(200, err)
		}
		fmt.Printf("%#v\n", h)
		c.JSON(200, gin.H{"Rate": h.Rate, "Domain": h.Domain})
	})
	r.Run()
// client
// curl -H "rate:300" -H "domain:music" 127.0.0.1:8080/
// output
// {"Domain":"music","Rate":300}
}
```
* add unit test
* Modify the code to get the http header
When the http header is obtained in the standard library,
the key value will be modified by the CanonicalMIMEHeaderKey function,
and finally the value of the http header will be obtained from the map.
As follows.
```go
func (h MIMEHeader) Get(key string) string {
        // ...
         v := h[CanonicalMIMEHeaderKey(key)]
        // ...
}
```
This pr also follows this modification
* Thanks to vkd for suggestions, modifying code
* Increase test coverage
env GOPATH=`pwd` go test github.com/gin-gonic/gin/binding -coverprofile=cover.prof
ok  	github.com/gin-gonic/gin/binding	0.015s	coverage: 100.0% of statements
* Rollback check code
* add use case to README.md 
						
						
					 
					
						2019-06-27 12:47:45 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						09a3650c97 
					 
					
						
						
							
							binding: add support of multipart multi files ( #1878 ) ( #1949 )  
						
						 
						
						... 
						
						
						
						* binding: add support of multipart multi files (#1878 )
* update readme: add multipart file binding 
						
						
					 
					
						2019-06-18 19:49:10 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						75b9d2bed7 
					 
					
						
						
							
							Attempt to fix PostForm cache bug ( #1931 )  
						
						 
						
						
						
						
					 
					
						2019-06-12 21:07:15 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						73c4633943 
					 
					
						
						
							
							use context instead of x/net/context ( #1922 )  
						
						 
						
						
						
						
					 
					
						2019-06-03 22:52:33 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						bfecd88fc4 
					 
					
						
						
							
							use sse v0.1.0 ( #1923 )  
						
						 
						
						
						
						
					 
					
						2019-06-03 22:42:25 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						08b52e5394 
					 
					
						
						
							
							feat: improve get post data. ( #1920 )  
						
						 
						
						... 
						
						
						
						Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com > 
						
						
					 
					
						2019-06-02 17:24:41 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						4b6df417e4 
					 
					
						
						
							
							chore: improve GetQueryMap performance. ( #1918 )  
						
						 
						
						... 
						
						
						
						Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com > 
						
						
					 
					
						2019-05-29 14:54:55 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						233a3e493d 
					 
					
						
						
							
							add context param query cache ( #1450 )  
						
						 
						
						
						
						
					 
					
						2019-05-29 11:25:02 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6e320c97e8 
					 
					
						
						
							
							Fix context.Params race condition on Copy() ( #1841 )  
						
						 
						
						... 
						
						
						
						* Fix context.Params race condition on Copy()
Using context.Param(key) on a context.Copy inside a goroutine
may lead to incorrect value on a high load, where another request
overwrite a Param
* Using waitgroup to wait asynchronous test case 
						
						
					 
					
						2019-05-27 14:04:30 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						35e33d3638 
					 
					
						
						
							
							Hold matched route full path in the Context ( #1826 )  
						
						 
						
						... 
						
						
						
						* Return nodeValue from getValue method
* Hold route full path in the Context
* Add small example 
						
						
					 
					
						2019-05-26 08:20:21 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						78a8b5c9d5 
					 
					
						
						
							
							Fix typo ( #1913 )  
						
						 
						
						
						
						
					 
					
						2019-05-23 11:37:34 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0cbf290302 
					 
					
						
						
							
							use encode replace json marshal increase json encoder speed ( #1546 )  
						
						 
						
						
						
						
					 
					
						2019-05-22 07:48:50 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b1d607a899 
					 
					
						
						
							
							Some code improvements ( #1909 )  
						
						 
						
						... 
						
						
						
						* strings.ToLower comparison changed to strings.EqualFold.
* Rewrite switch statement with only one case as if. 
						
						
					 
					
						2019-05-21 23:08:52 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8ee9d959a0 
					 
					
						
						
							
							Now you can parse the inline lowercase start structure ( #1893 )  
						
						 
						
						... 
						
						
						
						* Now you can parse the inline lowercase start structure
package main
import (
	"encoding/json"
	"fmt"
	"github.com/gin-gonic/gin"
)
type appkey struct {
	Appkey string `json:"appkey" form:"appkey"`
}
type Query struct {
	Page int `json:"page" form:"page"`
	Size int `json:"size" form:"size"`
	appkey
}
func main() {
	router := gin.Default()
	router.POST("/login", func(c *gin.Context) {
		var q2 Query
		if c.ShouldBindQuery(&q2) == nil {
			c.JSON(200, &q2)
		}
	})
	router.Run(":8088")
}
http client:
old:
curl -X POST "127.0.0.1:8088/login?appkey=china&page=1&size=10"
{"page":1,"size":10,"appkey":""}
now:
curl -X POST "127.0.0.1:8088/login?appkey=china&page=1&size=10"
{"page":1,"size":10,"appkey":"china"}
* Modify judgment conditions 
						
						
					 
					
						2019-05-13 10:17:31 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						965d74cebb 
					 
					
						
						
							
							add dev version ( #1886 )  
						
						 
						
						... 
						
						
						
						* add dev version
* Update version.go
* Update version.go 
						
						
					 
					
						2019-05-12 18:47:27 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						04eecb1283 
					 
					
						
						
							
							Use DefaultWriter and DefaultErrorWriter for debug messages ( #1891 )  
						
						 
						
						... 
						
						
						
						Aligns behaviour according to documentation. 
						
						
					 
					
						2019-05-10 14:03:25 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5a7e3095b2 
					 
					
						
						
							
							Update README.md about go version ( #1885 )  
						
						 
						
						
						
						
					 
					
						2019-05-08 11:10:34 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b75d67cd51 
					 
					
						
						
							
							update vendor: ugorji/go ( #1879 )  
						
						 
						
						... 
						
						
						
						* update vendor: ugorji/go
* fix 
						
						
					 
					
						2019-05-07 19:43:05 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b6425689dc 
					 
					
						
						
							
							Clean the Request Path early ( #1817 )  
						
						 
						
						... 
						
						
						
						This will reduce the number of times we have todo a redirect.
and allow multiple slashes in path to be routed!
fixes  #1644  
						
						
					 
					
						2019-05-07 19:32:35 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						66d2c30c54 
					 
					
						
						
							
							binding: move tests of mapping to separate test file ( #1842 )  
						
						 
						
						... 
						
						
						
						* move tests of mapping to separate test file
make 100% coverage of form_mapping.go from form_mapping_test.go file
* fix tests for go 1.6
go 1.6 doesn't support `t.Run(...)` subtests 
						
						
					 
					
						2019-05-07 19:06:55 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						094f9a9105 
					 
					
						
						
							
							v1.4.0 +  #1631  (remove go1.6/go1,7 support) ( #1851 )  
						
						 
						
						... 
						
						
						
						* remove go1.6 support
* remove build tag
* remove todo
* remove go1.6 support: https://github.com/gin-gonic/gin/pull/1383/commits 
* update readme
* remove go1.7 support
* fix embedmd error
* test
* revert it
* revert it
* remove context_17
* add pusher test
* v1.4.0 rc1 
						
						
					 
					
						2019-05-07 18:32:32 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						202f8fc58a 
					 
					
						
						
							
							Fix a typo syscanll.SIGTERM -> syscall.SIGTERM ( #1868 )  
						
						 
						
						
						
						
					 
					
						2019-04-24 20:21:41 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						11407e73ad 
					 
					
						
						
							
							Fix spelling. ( #1861 )  
						
						 
						
						
						
						
					 
					
						2019-04-22 23:11:57 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f9de6049cb 
					 
					
						
						
							
							Remove contents of the Authorization header while dumping requests ( #1836 )  
						
						 
						
						... 
						
						
						
						This PR replaces the contents of that header with a *. This prevents
credential leak in logs. 
						
						
					 
					
						2019-04-18 10:45:37 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ffcbe77b1e 
					 
					
						
						
							
							chore(readme): rollback readme ( #1846 )  
						
						 
						
						... 
						
						
						
						#1844  #1838  
Keep the documentation in readme until full available on the new website. 
						
						
					 
					
						2019-04-06 21:48:33 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2e915f4e50 
					 
					
						
						
							
							refactor(form_mapping.go): mapping multipart request ( #1829 )  
						
						 
						
						... 
						
						
						
						* refactor(form_mapping.go): mapping multipart request
* add checkers for a types to match with the setter interface
* form_mapping.go: rename method name on setter interface, add comments
* fix style of comments 
						
						
					 
					
						2019-04-02 09:01:34 +08:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ce20f107f5 
					 
					
						
						
							
							Truncate Latency precision in long running request ( #1830 )  
						
						 
						
						... 
						
						
						
						fixes  #1823  
						
						
					 
					
						2019-03-28 14:14:00 +08:00