-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparams_go17.go
38 lines (38 loc) · 1.02 KB
/
params_go17.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//// +build go1.7
//
package bingo_router
//
//import (
// "context"
// "net/http"
//)
//
//type paramsKey struct{}
//
//// ParamsKey is the request context key under which URL params are stored.
////
//// This is only present from go 1.7.
//var ParamsKey = paramsKey{}
//
//// Handler is an adapter which allows the usage of an http.Handler as a
//// request handle. With go 1.7+, the Params will be available in the
//// request context under ParamsKey.
//func (r *Router) Handler(method, path string, route http.Handler) {
// r.Handle(method, path,
// func(w http.ResponseWriter, req *http.Request, p Params) {
// ctx := req.Context()
// ctx = context.WithValue(ctx, ParamsKey, p)
// req = req.WithContext(ctx)
// handler.ServeHTTP(w, req)
// },
// )
//}
//
//// ParamsFromContext pulls the URL parameters from a request context,
//// or returns nil if none are present.
////
//// This is only present from go 1.7.
//func ParamsFromContext(ctx context.Context) Params {
// p, _ := ctx.Value(ParamsKey).(Params)
// return p
//}