田欧
6c8a973134
add issue and pull request template explain ( #1483 )
...
* add issue/pr template explain
* add issue/pr template explain
2018-08-14 11:35:13 +08:00
田欧
f45c928a15
chore: use http.Status* instead of hard code ( #1482 )
2018-08-14 09:51:56 +08:00
Alex
8aef947f6e
docs: remove double negative in README.md ( #1480 )
...
"not match neither" means that it will match.
2018-08-12 22:54:22 +02:00
田欧
6159213462
unify test data ( #1417 )
...
mkdir a test data dir.
2018-08-12 23:38:31 +08:00
田欧
1ae32f3a2c
improve render code coverage ( #1474 )
...
all code coverage > 99%
2018-08-12 22:02:37 +08:00
田欧
202db4fb11
improve utils code coverage ( #1473 )
2018-08-12 21:38:07 +08:00
田欧
e5bb4f62a2
chore: add return or remove else for reduce indent ( #1470 )
2018-08-12 21:17:57 +08:00
田欧
7e64d32269
Attempt to fix #1462 ( #1463 )
...
#1462
2018-08-12 10:12:33 +08:00
田欧
8fc8ce0472
small enhance for cleanPath ( #1469 )
...
from httprouter patch: https://github.com/julienschmidt/httprouter/pull/243
2018-08-10 20:50:23 +08:00
田欧
1f1bc429ed
chore: add test case for source/function of recovery.go ( #1467 )
2018-08-09 17:20:06 +08:00
田欧
9666ba6738
chore: update top bar header ( #1461 )
2018-08-07 13:49:31 +08:00
zhanweidu
0552c3bc3a
flush operation will overwrite the origin status code ( #1460 )
...
The status of responseWriter will be overwrite if flush was called. This is caused by the Flush of http.response.Flush().
2018-08-07 12:41:28 +08:00
Dmitry Dorogin
9b7e7bdce6
Add tests for context.Stream ( #1433 )
2018-08-07 06:44:32 +08:00
grapeVine
e2b4cf6e2d
interface implement type check ( #1459 )
...
interface implement type check
2018-08-06 23:08:01 +08:00
田欧
647535cd9b
Support map as query string or post form parameters ( #1383 )
...
* support query map
* add GetQueryMap and unittest
* support post-form map
* add readme for query map
* attempt to fix bug for post-form map when go version is 1.6
* remove duplicate code
* remove comment
2018-08-06 12:07:11 +08:00
Dmitry Dorogin
631cfbd1ef
Simplify context error ( #1431 )
...
Hello!
Looking through context package and found a little bit complicated switch block. And tried to make it easier.
Thanks!
2018-08-05 13:29:26 +08:00
solos
220e8d3453
return json if jsonp has not callback ( #1438 )
...
return json if jsonp has not callback
2018-07-21 00:52:55 +08:00
Rex Lee(李俊)
85221af84c
add json ASCII string render ( #1358 )
...
add a json render that rendering json as ASCII string
2018-07-03 17:17:08 +08:00
vz
d17a12591f
update assert param(expect, actual) position ( #1421 )
...
- update assert param(expect, actual) position
2018-07-03 15:39:18 +08:00
田欧
1c4cbfae59
chore: remove duplicate code ( #1418 )
2018-07-02 11:06:56 +08:00
田欧
cdd02fa9d6
update error(err) to err ( #1416 )
...
the pull request update `return error(err)` to `return err`, and remove `kindOfData`.
2018-07-01 21:10:48 +08:00
田欧
eb9f313144
add comment for context ( #1413 )
...
ref #1075
annotation from go context source.
2018-06-28 17:08:09 +08:00
田欧
c00f21ff23
add go version prerequisite and debug warning ( #1394 )
...
* add go version prerequisite and debug warning
* merge duplicate content
* remove duplicate content
2018-06-26 18:56:43 +08:00
田欧
6c6d97ba2e
remove hardcode instead of http status value ( #1411 )
2018-06-26 17:21:32 +08:00
田欧
1f59bad84b
add an edge case from httprouter ( #1407 )
2018-06-23 11:06:27 +08:00
田欧
760d0574db
vendor: remove vendor package from example folder ( #1402 )
...
updated `vendor.json` is ok.
but set `ignore test` in `vendor.json`, `x/net/context` package only use in `context_test.go`, I don't know why vendor still need it.
please @appleboy review the pull request, thanks a lot.
2018-06-23 00:45:43 +08:00
田欧
8035359102
use strings.Split instead of strings.IndexByte ( #1406 )
2018-06-23 00:08:58 +08:00
田欧
605aa1c30f
example: fix typo for grpc ( #1405 )
...
sorry...fixed #1403
2018-06-22 23:44:45 +08:00
田欧
737d2fb7ab
add grpc example ( #1401 )
...
use grpc helloworld example.
2018-06-22 09:51:06 +08:00
htobenothing
bf85b32c1d
Add Pusher() function for support http2 server push ( #1273 )
...
gin already support http2, while previously not support server push.
Add Pusher() function to extend the ResponseWriter interface.
```golang
// get http.Pusher
if pusher := c.Writer.Pusher(); pusher != nil {
// use pusher.Push() to do server push
}
```
<img width="881" alt="screen shot 2018-03-07 at 11 20 49 pm" src="https://user-images.githubusercontent.com/16014993/37100619-680c00c6-225e-11e8-9352-76ec3bd62894.png ">
2018-06-21 09:53:52 +08:00
田欧
87d536c001
utils: use strings.Split instead of strings.IndexByte ( #1400 )
...
And I test them benchmark:
code:
```go
# stringsbench.go
package stringsbench
import "strings"
func index(part string) string {
if index := strings.IndexByte(part, ';'); index >= 0 {
if part := strings.TrimSpace(strings.Split(part, ";")[0]); part != "" {
return part[0:index]
}
}
return ""
}
func split(part string) string {
return strings.Split(part, ";")[0]
}
```
```go
# stringsbench_test.go
package stringsbench
import (
"testing"
)
func BenchmarkIndex(b *testing.B) {
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
index("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
}
})
}
func BenchmarkSplit(b *testing.B) {
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
split("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
}
})
}
```
And the result:
```shell
➜ strings go test --bench=.
goos: darwin
goarch: amd64
BenchmarkIndex-8 30000000 46.1 ns/op
BenchmarkSplit-8 50000000 35.9 ns/op
PASS
ok _/Users/tianou/strings 3.271s
➜ strings go test --bench=.
goos: darwin
goarch: amd64
BenchmarkIndex-8 30000000 44.2 ns/op
BenchmarkSplit-8 50000000 34.7 ns/op
PASS
ok _/Users/tianou/strings 3.156s
➜ strings go test --bench=.
goos: darwin
goarch: amd64
BenchmarkIndex-8 30000000 45.6 ns/op
BenchmarkSplit-8 50000000 35.3 ns/op
PASS
ok _/Users/tianou/strings 3.230s
```
2018-06-21 09:31:43 +08:00
田欧
caf3e350a5
doc: update readme for adding binding about skip validate ( #1359 )
...
* update readme for adding binding about skip validate
* update readme for adding binding about skip validate
2018-05-31 14:13:40 +08:00
MW Lim
c2f083fc95
minor typo in routergroup.go ( #1360 )
2018-05-31 11:41:45 +08:00
chainhelen
07cbe116a0
Add and fix the explanation of `HandleContext` ( #1371 )
...
Reference this issue #1323
1. There isn't any eg about `HandleContext`
2. The `c.Request.Path` of `HandleContext` Comment is not right
Based on the above two points, I pull this request.
If you think it's unnecessary, I will close this.
Thx.
2018-05-30 09:19:04 +08:00
Jean-Christophe Lebreton
bf7803815b
Serve easily dynamic files with `DataFromReader` context method ( #1304 )
...
* Add DataFromReader context method
* Replace fmt by strconv.FormatInt
* Add pull request link to README
2018-05-12 11:00:42 +08:00
chainhelen
5636afe02d
fix bug, return err when failed binding bool ( #1350 )
...
* fix bug, return err when failed binding bool
* add test, return err when failed binding bool
2018-05-11 22:40:33 +08:00
JINNOUCHI Yasushi
995fa8e9ce
Fix #216 : Enable to call binding multiple times in some formats ( #1341 )
...
* Add interface to read body bytes in binding
* Add BindingBody implementation for some binding
* Fix to use `BindBodyBytesKey` for key
* Revert "Fix to use `BindBodyBytesKey` for key"
This reverts commit 2c82901cea
.
* Use private-like key for body bytes
* Add tests for BindingBody & ShouldBindBodyWith
* Add note for README
* Remove redundant space between sentences
2018-05-11 10:33:33 +08:00
Aurelien Regat-Barrel
6e09ef03b0
Fix typo in panic() message (extra single quote) ( #1352 )
...
Also fix the same typo in a comment
2018-05-11 09:57:21 +08:00
田欧
bd4f73af67
support struct pointer ( #1342 )
...
* support struct pointer
* add readme
2018-05-01 14:24:18 +08:00
Alexander Lokhman
2282be059b
Add support of pointers in form binding ( #1336 )
...
* Add support of pointers in form binding
* Add tests for pointer form binding
2018-04-26 22:09:34 +08:00
senhtry
8c24018290
Add Jsonp Support to Context ( #1333 )
2018-04-26 11:52:19 +08:00
田欧
41f951e0cd
support default value for form ( #1138 )
...
* support default value for form
* fix bug for nil interface
* use SplitN and optimization code
* add test case
* add test cases for form(own default value)
* fix invalid code
* fix code indent
* assert order
2018-04-25 16:24:03 +08:00
JINNOUCHI Yasushi
814ac9490a
Add example to build single binary with templates ( #1328 )
2018-04-22 15:04:38 +08:00
田欧
dfe37ea6f1
unify assert.Equal usage ( #1327 )
...
* unify assert.Equal usage
* fix typo
2018-04-20 10:27:44 +08:00
田欧
248c522e4a
Add Contents for README because it too long ( #1325 )
2018-04-20 09:54:00 +08:00
esplo
3455d7f388
change README for app-engine example because of goapp deprecation ( #1324 )
...
the App Engine SDK is superseded by the Cloud SDK
2018-04-19 12:00:22 +08:00
Yoshiyuki Kinjo
6ad7b9c9d3
Fix documentation typo ( #1321 )
2018-04-17 10:54:40 +08:00
Suhas Karanth
6d913fc343
fix(binding): Expose validator engine used by the default Validator ( #1277 )
...
* fix(binding): Expose validator engine used by the default Validator
- Add func ValidatorEngine for returning the underlying validator engine used
in the default StructValidator implementation.
- Remove the function RegisterValidation from the StructValidator interface
which made it immpossible to use a StructValidator implementation without the
validator.v8 library.
- Update and rename test for registering validation
Test{RegisterValidation => ValidatorEngine}.
- Update readme and example for registering custom validation.
- Add example for registering struct level validation.
- Add documentation for the following binding funcs/types:
- Binding interface
- StructValidator interface
- Validator instance
- Binding implementations
- Default func
* fix(binding): Move validator engine getter inside interface
* docs: rm date cmd from custom validation demo
2018-03-29 14:33:07 +08:00
hellojukay
65a65c2edd
add gin panic time log ( #1270 )
...
* add gin pinic time log
* Update recovery.go
2018-03-20 14:42:51 +08:00
Romain Beuque
3e3f9bca81
doc(graceful-shutdown): failure to ListenAndServe should be a reason to exit ( #1287 )
...
Signed-off-by: Romain Beuque <romain.beuque@gmail.com>
2018-03-20 14:05:24 +08:00