Merge pull request #1696 from nishanttotla/update-apiversion-regex

Extracting apiversion from HTTP request
This commit is contained in:
Victor Vieux 2016-01-28 13:33:28 -08:00
commit 4ce93c1997
2 changed files with 6 additions and 3 deletions

View File

@ -18,6 +18,7 @@ type context struct {
statusHandler StatusHandler
debug bool
tlsConfig *tls.Config
apiVersion string
}
type handler func(c *context, w http.ResponseWriter, r *http.Request)
@ -149,11 +150,12 @@ func setupPrimaryRouter(r *mux.Router, context *context, enableCors bool) {
if enableCors {
writeCorsHeaders(w, r)
}
context.apiVersion = mux.Vars(r)["version"]
localFct(context, w, r)
}
localMethod := method
r.Path("/v{version:[0-9.]+}" + localRoute).Methods(localMethod).HandlerFunc(wrap)
r.Path("/v{version:[0-9]+.[0-9]+}" + localRoute).Methods(localMethod).HandlerFunc(wrap)
r.Path(localRoute).Methods(localMethod).HandlerFunc(wrap)
if enableCors {
@ -169,7 +171,7 @@ func setupPrimaryRouter(r *mux.Router, context *context, enableCors bool) {
localFct(context, w, r)
}
r.Path("/v{version:[0-9.]+}" + localRoute).
r.Path("/v{version:[0-9]+.[0-9]+}" + localRoute).
Methods(optionsMethod).HandlerFunc(wrap)
r.Path(localRoute).Methods(optionsMethod).
HandlerFunc(wrap)

View File

@ -11,8 +11,9 @@ import (
func TestRequest(t *testing.T) {
t.Parallel()
context := &context{}
r := mux.NewRouter()
setupPrimaryRouter(r, nil, false)
setupPrimaryRouter(r, context, false)
w := httptest.NewRecorder()
req, e := http.NewRequest("GET", "/version", nil)