An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

github.com/gorilla/context

Package context stores values shared during a request lifetime. Note: gorilla/context, having been born well before `context.Context` existed, does not play well > with the shallow copying of the request that [`http.Request.WithContext`](https://golang.org/pkg/net/http/#Request.WithContext) (added to net/http Go 1.7 onwards) performs. You should either use *just* gorilla/context, or moving forward, the new `http.Request.Context()`. For example, a router can set variables extracted from the URL and later application handlers can access those values, or it can be used to store sessions values to be saved at the end of a request. There are several others common uses. The idea was posted by Brad Fitzpatrick to the go-nuts mailing list: Here's the basic usage: first define the keys that you will need. The key type is interface{} so a key can be of any type that supports equality. Here we define a key using a custom int type to avoid name collisions: Then set a variable. Variables are bound to an http.Request object, so you need a request instance to set a value: The application can later access the variable using the same key you provided: And that's all about the basic usage. We discuss some other ideas below. Any type can be stored in the context. To enforce a given type, make the key private and wrap Get() and Set() to accept and return values of a specific type: Variables must be cleared at the end of a request, to remove all values that were stored. This can be done in an http.Handler, after a request was served. Just call Clear() passing the request: ...or use ClearHandler(), which conveniently wraps an http.Handler to clear variables at the end of a request lifetime. The Routers from the packages gorilla/mux and gorilla/pat call Clear() so if you are using either of them you don't need to clear the context manually.

Ecosystem
proxy.golang.org
Latest Release
v1.1.2
over 2 years ago
Versions
2
Dependent Packages
4,065
Dependent Repos
46,896
Links
Registry proxy.golang.org
Source Repository
Docs Documentation
JSON API View JSON
CodeMeta codemeta.json
Package Details
PURL pkg:golang/github.com/gorilla/context
spec
License BSD-3-Clause
Namespace github.com/gorilla
First Release over 9 years ago
Last Synced about 15 hours ago
Repository
Stars 429 on GitHub
Forks 136 on GitHub
Docker Dependents 357
Docker Downloads 542,774,454
Commits 46
Committers 12
Avg per Author 3.833
DDS 0.739
Rankings on proxy.golang.org
Overall Top 1.1%
Dependent packages Top 0.1%
Dependent repos Top 0.1%
Forks Top 2.3%
Docker downloads Top 0.3%