Commit Graph

184 Commits

Author SHA1 Message Date
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
Raphael Gavache
e207a3ce65 Fix context.Copy() race condition (#1020)
* Fix context.Copy race condition

* Update githubapi_test.go

* fix code format
2019-02-26 15:10:16 +08:00
Luis GG
62749f0db4 Add context.HandlerNames() (#1729)
* Add context.HandlerNames()

This change adds a HandlerNames method that will return all registered handles in the context, in descending order

This is useful for debugging and troubleshooting purposes, especially in large apps

* Tests

Add tests for HandlerNames

* Fix HandlerNames test

* Simplify test
2019-02-26 12:15:40 +08:00
Dmitry Kutakov
4867ff9634 fix Context.Next() - recheck len of handlers every iteration (#1745)
* fix Context.Next() - recheck len of handlers every iteration

* add tests when Context.reset() can be called inside of handler

TestEngineHandleContext
TestContextResetInHandler
TestRouterStaticFSFileNotFound

* Context.Next() - format to while style
2019-01-18 09:57:06 +08:00
Dmitry Kutakov
b056a34bdc fix errcheck warnings (#1739) 2019-01-18 09:32:53 +08:00
thinkerou
29a145c85d
Revert "context: inherits context cancelation and deadline from http.Request context for Go>=1.7 (#1690)" (#1736)
This reverts commit f67d7a90c4.
2019-01-09 09:32:44 +08:00
Romain Beuque
f67d7a90c4 context: inherits context cancelation and deadline from http.Request context for Go>=1.7 (#1690)
*gin.Context implements standard context.Context methods, but always
returns data as context is still valid. Since Go 1.7, http.Request now
contains a context.Context object, which can be controlled by the
http.Server to indicates that the context is now closed, and persue of
request should be canceled.

This implements the propagation of http.Request context methods inside
gin.Context to have HTTP context cancelation information at gin.Context
level.

Signed-off-by: Romain Beuque <romain.beuque@corp.ovh.com>
2018-12-13 11:20:17 +08:00
thinkerou
59695e7ba8
Add BindUri (#1694)
* add BindUri

* fix bug

* fix code style
2018-12-12 23:40:29 +08:00
thinkerou
521d06c81d support bind uri param (#1612)
* support bind uri (1)

* uri binding successful run

* fix vet warning: github.com/gin-gonic/gin/internal.Param composite literal uses unkeyed fields

* fix code style

* update function name

* fix test function signature

* add test for CanSet

* update readme and add test case

* remove internal.Params

* add coverage

* fix warning
2018-11-22 09:29:48 +08:00
Gordon Tyler
8cb390f8fe Yaml binding (#1618)
* Add YAML binding for application/x-yaml.

* Add YAML binding methods to Context.

* Review fixes.

* Revert accidentally removed import.
2018-11-06 09:49:45 +08:00
Barnabus
7a374f9a47 Fix typos (#1626) 2018-11-05 14:17:04 +08:00
Ismail Gjevori
dbc330b804 Pass MaxMultipartMemory when FormFile is called (#1600)
When `gin.Context.FormFile("...")` is called the `engine.MaxMultipartMemory` is never used. This PR makes sure that the `MaxMultipartMemory` is passed and removes 2 calls to `http.Request.ParseForm` since they are called from `http.Request.ParseMultipartForm`
2018-10-22 23:01:14 +08:00
田欧
6db092f778 chore: add some annotations (#1550)
ref #1075 should all annotations and can close #1075 .
2018-09-15 15:21:54 +08:00
田欧
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
田欧
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
syssam
40ab9de4b5 Add BindXML AND ShouldBindXML #1484 (#1485)
Add BindXML AND ShouldBindXML #1484
2018-08-17 09:12:15 +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
田欧
eb9f313144 add comment for context (#1413)
ref #1075 
annotation from go context source.
2018-06-28 17:08:09 +08:00
田欧
6c6d97ba2e remove hardcode instead of http status value (#1411) 2018-06-26 17:21:32 +08:00
田欧
8035359102 use strings.Split instead of strings.IndexByte (#1406) 2018-06-23 00:08:58 +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
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 2c82901ceab6ae53730a3cfcd9839bee11a08f13.

* 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
senhtry
8c24018290 Add Jsonp Support to Context (#1333) 2018-04-26 11:52:19 +08:00
Himanshu Mishra
46662e700b Doc: Fix typo in documentation of Bind (#1204) 2017-12-20 09:32:39 +08:00
田欧
9a4ecc87d6 format some codes style (#1165) 2017-11-11 23:24:51 -06:00
Suhas Karanth
dfb68ce085 feat(context): ShouldBind counterparts for Bind methods (#1047)
* feat(context): ShouldBind counterparts for Bind methods + tests

* docs(readme): Switch examples to use ShouldBind methods

Add section for bind methods types, explain difference in behavior.
Switch all `c.Bind` examples to use `c.ShouldBind`.
2017-10-23 11:14:09 +02:00
Daniel M. Lambea
c9b344118f Moved const 'defaultMemory' to attrib. Engine.MaxMultipartMemory instead. (#1100) 2017-09-07 11:45:16 +08:00
Eason Lin
8902826696 doc(context): add cookie doc (#1088) 2017-08-28 21:38:53 +02:00
Bo-Yi Wu
211c48f040 refactor: using requestHeader internal func (#1083)
* refactor: using requestHeader internal func.

* update

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2017-08-26 12:02:47 +02:00
Dan Markham
b9686e91fa Use standard library for retrieving header (#1081) 2017-08-25 23:53:27 -05:00
田欧
a8fa424ae5 update comment (#1057) 2017-08-16 11:55:50 +08:00
Eason Lin
df37e74fa1 doc(context): more clearer bind doc when input is not valid (#1049) 2017-08-01 12:49:28 +08:00
Eason Lin
7fafb3f4a1 doc(context): add status func comment. (#1042) 2017-07-28 08:50:58 +08:00
Eason Lin
c19aa0598b feat(context): add BindQuery func (#1029)
* feat(context): add BindQuery func, only parse/bind the query string params.

* docs(readme): add BindQuery section.

* docs(readme): fix import.

* docs(readme): separate import
2017-07-19 09:50:05 +02:00
田欧
7180f2ba62 not use tmp var (#1032) 2017-07-17 22:39:39 -05:00
Eason Lin
93b3a0d7ec feat(context): add SaveUploadedFile func. (#1022)
* feat(context): add SaveUploadedFile func.

* feat(context): update multiple upload examples.

* style(example): fix gofmt

* fix(example): add missing return
2017-07-15 22:42:08 -05:00
田欧
aa6d2d29f8 refactor(doc): use space not tab (#1006) 2017-07-11 10:28:08 -05:00
Eason Lin
75ed286c60 feat: add SecureJSON func to prevent json hijacking 2017-07-08 01:21:30 +08:00
田欧
e0fd6238d3 use comma ok and use single line (#984) 2017-07-06 09:49:54 -05:00
田欧
b985857899 update func comment (#981) 2017-07-05 20:28:16 -05:00
Javier Provecho Fernandez
42a34cdc35 docs(context): document keys, errors, and accepted, close #488 2017-07-05 16:55:59 +02:00
Javier Provecho Fernandez
d875f07409 Merge branch 'master' into develop 2017-07-02 14:23:55 +02:00
Javier Provecho Fernandez
68aa2c38da fix(context): switch deprecated bindwith for mustbindwith 2017-06-28 00:46:35 +02:00
Javier Provecho Fernandez
1a9cba2cc7 Merge pull request #855 from gin-gonic/feat/662
feat(context): add idiomatic binding functions for clear err managment
2017-06-28 00:16:34 +02:00
Javier Provecho Fernandez
9a79e3f144 fix(import): switch sse import from gopkg to github 2017-06-27 23:17:02 +02:00