You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
500 B
25 lines
500 B
package pathvar |
|
|
|
import ( |
|
"context" |
|
"net/http" |
|
) |
|
|
|
var pathVars = contextKey("pathVars") |
|
|
|
func Vars(r *http.Request) map[string]string { |
|
vars, ok := r.Context().Value(pathVars).(map[string]string) |
|
if ok { |
|
return vars |
|
} |
|
return nil |
|
} |
|
func WithVars(r *http.Request, params map[string]string) *http.Request { |
|
return r.WithContext(context.WithValue(r.Context(), pathVars, params)) |
|
} |
|
|
|
type contextKey string |
|
|
|
func (c contextKey) String() string { |
|
return "rest/pathvar/context key: " + string(c) |
|
}
|
|
|