Merge pull request #3683 from aaronlehmann/dont-recreate-router
Do not recreate mux router for each incoming request
This commit is contained in:
commit
26163d8256
1 changed files with 14 additions and 2 deletions
|
@ -1,6 +1,10 @@
|
|||
package v2
|
||||
|
||||
import "github.com/gorilla/mux"
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
// The following are definitions of the name under which all V2 routes are
|
||||
// registered. These symbols can be used to look up a route based on the name.
|
||||
|
@ -14,11 +18,19 @@ const (
|
|||
RouteNameCatalog = "catalog"
|
||||
)
|
||||
|
||||
var (
|
||||
baseRouter *mux.Router
|
||||
createBaseRouterOnce sync.Once
|
||||
)
|
||||
|
||||
// Router builds a gorilla router with named routes for the various API
|
||||
// methods. This can be used directly by both server implementations and
|
||||
// clients.
|
||||
func Router() *mux.Router {
|
||||
return RouterWithPrefix("")
|
||||
createBaseRouterOnce.Do(func() {
|
||||
baseRouter = RouterWithPrefix("")
|
||||
})
|
||||
return baseRouter
|
||||
}
|
||||
|
||||
// RouterWithPrefix builds a gorilla router with a configured prefix
|
||||
|
|
Loading…
Reference in a new issue