田欧
85f3e78abc
chore: remove else instead of return/continue ( #1502 )
...
As[ Effective Go](https://golang.org/doc/effective_go.html?#if ) about `if` said, remove else statement instead of return/continue statement.
2018-08-20 21:49:24 +08:00
junfengye
0ebd42d0a9
Update jsoniter.go ( #1500 )
...
add newencoder to fix compile error for -tags=jsoniter
2018-08-20 18:25:45 +08:00
Filip Figiel
c6110f970c
Add PureJSON renderer ( #694 )
...
Closes #693
2018-08-20 15:15:31 +08:00
田欧
b7bb9baa64
chore: add missing copyright and update if/else ( #1497 )
2018-08-19 22:52:43 +08:00
田欧
32b58e0fd2
render: update msgpack usage ( #1498 )
...
please see msgpack usage: https://github.com/ugorji/go/tree/master/codec#usage
2018-08-19 22:14:02 +08:00
田欧
6073a79ee0
not use protobuf on context but use it on render ( #1496 )
2018-08-19 17:39:58 +08:00
aljun
efdd3c8b81
Add support for Protobuf format response and unit test ( #1479 )
...
`Gin` now have the `protobufBinding` function to check the request format, but didn't have a protobuf response function like `c.YAML()`.
In our company [ByteDance](http://bytedance.com/ ), the largest internet company using golang in China, we use `gin` to transfer __Protobuf__ instead of __Json__, we have to write some internal library to make some wrappers to achieve that, and the code is not elegant. So we really want such a feature.
2018-08-19 10:45:56 +08:00
chainhelen
f856aa85cd
Update readme about the version of gin ( #1494 )
2018-08-17 14:59:55 +08:00
David Zhang
f5451bd645
Fix typo in README [ci skip] ( #1492 )
2018-08-17 11:33:23 +08:00
Eason Lin
a643d20605
readme: fix users link ( #1493 )
2018-08-17 11:21:14 +08:00
Alexander Lokhman
7eb0f74b89
Set default time format in form binding ( #1487 )
2018-08-17 09:41:56 +08:00
syssam
40ab9de4b5
Add BindXML AND ShouldBindXML #1484 ( #1485 )
...
Add BindXML AND ShouldBindXML #1484
2018-08-17 09:12:15 +08:00
田欧
bef6c56c89
chore: upgrade dependency library version ( #1491 )
...
upgrade lib version, and upgrade `github.com/json-iterator/go` to add two libs.
2018-08-16 17:38:17 +08:00
Abner Chen
64a4548642
Fix typo in readme ( #1490 )
2018-08-15 13:42:12 +08:00
Javier Provecho Fernandez
b869fe1415
docs: add changelog for v1.3.0, update authors and version const ( #1478 )
...
* docs: add changelog for v1.3.0, update authors and version const
* add link for every referenced pull request (#1481 )
* docs: add changelog for v1.3.0, update authors and version const
* add link for pr
2018-08-14 10:58:52 +02:00
田欧
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