Commit Graph

1412 Commits

Author SHA1 Message Date
Bo-Yi Wu
4b6df417e4 chore: improve GetQueryMap performance. (#1918)
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2019-05-29 14:54:55 +08:00
ijaa
233a3e493d add context param query cache (#1450) 2019-05-29 11:25:02 +08:00
Samuel Abreu
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
Roman Zaynetdinov
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
ZYunH
78a8b5c9d5 Fix typo (#1913) 2019-05-23 11:37:34 +08:00
itcloudy
0cbf290302 use encode replace json marshal increase json encoder speed (#1546) 2019-05-22 07:48:50 +08:00
Kirill Motkov
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
guonaihong
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
Uwe Dauernheim
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
Dan Markham
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
Dmitry Kutakov
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
Dan Markham
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
DeathKing
202f8fc58a Fix a typo syscanll.SIGTERM -> syscall.SIGTERM (#1868) 2019-04-24 20:21:41 +08:00
John Bampton
11407e73ad Fix spelling. (#1861) 2019-04-22 23:11:57 +08:00
Abhishek Chanda
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
Eason Lin
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
Dmitry Kutakov
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
Dan Markham
ce20f107f5 Truncate Latency precision in long running request (#1830)
fixes #1823
2019-03-28 14:14:00 +08:00
田欧
1d462bbe37
chore: update ginS (#1822) 2019-03-21 15:12:06 +08:00
田欧
0c1f3c4e81 chore: fix invalid link (#1820) 2019-03-20 12:07:34 +08:00
Sai
b40d4c175c IsTerm flag should not be affected by DisableConsoleColor method. (#1802)
* IsTerm flag should not be affected by DisableConsoleColor method.

* change public property to private
2019-03-18 11:12:30 +08:00
Boyi Wu
c16bfa7949 update for supporting file binding (#1264)
update for supporting multipart form and file binding 

example:
```
type PhoptUploadForm struct {
	imgData    *multipart.FileHeader `form:"img_data" binding:"required"`
	ProjectID   string `form:"project_id" binding:"required"`
	Description string `form:"description binding:"required"`
}
```


ref: https://github.com/gin-gonic/gin/issues/1263
2019-03-18 10:16:34 +08:00
sekky0905
bcf36ade9f Remove sudo setting from travis.yml (#1816) 2019-03-16 16:09:10 +08:00
David Zhang
05b5c3ba74 Doc: fix gin example notice syntax (#1814) 2019-03-15 15:39:34 +08:00
Sai
242a2622c8 Fix Japanese text hiragana -> kanji (#1812) 2019-03-14 16:26:51 +08:00
Dmitry Kutakov
483f828bce add support arrays on mapping (#1797)
* add support arrays on mapping

* not allow default value on array mapping
2019-03-14 13:34:56 +08:00
田欧
cab0749b4f
chore: update readme (#1793)
* update readme

* add multi-language version doc link

* add multi-language version doc link

* update readme

* update

* update readme

* update readme

* update readme
2019-03-14 13:23:35 +08:00
田欧
e5261480fd
chore(readme.md): fix invalid link (#1807) 2019-03-12 14:01:12 +08:00
Sai
4a23c4f7b9 fix #1804 which is caused by calling middleware twice. (#1805)
Fix: https://github.com/gin-gonic/gin/issues/1804

`allNoRoute` contains middlewares such as `gin.Logger`, `gin.Recovery`, so on.  The correct code is to use `noRoute`.

cc: @MetalBreaker
2019-03-11 10:52:47 +08:00
田欧
70a0aba3e4
travisci: use go module when go11+ (#1800) 2019-03-08 23:18:52 +08:00
Sai
f7079a861e Delete dupilicated test (#1801) 2019-03-08 19:44:39 +08:00
Adam Zielinski
3dc247893e make context.Keys available as LogFormatterParams (#1779)
* make context available as LogFormatterParams

* pass context Keys to LogFormatterParams

* update logger test to check for Key param
2019-03-07 09:47:31 +08:00
Riverside
057f63b1bb spell check (#1796)
* spell check

* variable path collides with imported package name

* spell check
2019-03-05 09:41:37 +08:00
田欧
a5dda62cdc
chore: use internal/json (#1791) 2019-03-05 06:46:18 +08:00
Dmitry Kutakov
805b2d4904 add support time.Duration on mapping (#1794) 2019-03-04 11:37:46 +08:00
Kumar McMillan
f8f1459619 Fix URL to starter template in the docs (#1795) 2019-03-04 08:06:46 +08:00
田欧
df366c7840
chore: update go mod package (#1792) 2019-03-04 07:28:03 +08:00
Dmitry Kutakov
0d50ce8597 refactor(form_mapping.go): mapping ptr, struct and map (#1749)
* refactor(form_mapping.go): mapping ptr, struct and map

* fix #1672 correct work with ptr - not create value if field is not set
* avoid allocations on strings.Split() - change to strings.Index()
* fix #610 tag value "-" is mean ignoring field
* struct fields mapped like json.Unmarshal
* map fields mapped like json.Unmarshal

* fix after @thinkerou review
2019-03-03 14:39:43 +08:00
Daniel Krom
893c6cae07 Added stream flag indicates if client disconnected in middle of streaming (#1252) 2019-03-02 23:07:37 +08:00
Bo-Yi Wu
3b84a430d0 Drone switch from gin to go-chi in 1.0 version. (#1790) 2019-03-02 20:19:42 +08:00
田欧
8c8002d744 chore: add examples repo link to README (#1788) 2019-03-02 19:21:10 +08:00
Dang Nguyen
688eb1281c update examples link in README (#1789) 2019-03-02 16:04:21 +08:00
田欧
0feaf8cbd8
Split examples to alone repo (#1776)
* split examples to alone repo

* vendor

* fix package error

* add examples/README.md
2019-03-01 23:42:41 +08:00
Emmanuel Goh
ccb9e90295 Extend context.File to allow for the content-dispositon attachments via a new method context.Attachment (#1260)
* Add FileAttachment method to context to allow instant downloads with filenames

* Add relevant tests for FileAttachment method
2019-03-01 10:17:47 +08:00
Equim
2dd3193006 Support negotiation wildcards, fix #391 (#1112)
* support negotiation wildcards, fix #391

* fix typo
2019-03-01 10:03:14 +08:00
田欧
9bacadd3ea remove docs dir (#1786)
the post doc move https://gin-gonic.com/blog/
2019-03-01 07:11:02 +08:00
Dmitry Kutakov
7dfa6c936a fix #1784: correct error comparison on tests (#1785) 2019-02-28 22:43:27 +08:00