// HANDLER create route using GorwardRouter values func (r GowardRouter) Handler(handler http.Handler) Router { var route *mux.Route if r.FMiddleware != nil { handler = bindMiddlewares(handler, r.FMiddleware...) } if r.FPath == "/" && r.FParentRouter != nil { route = r.FParentRouter.NewRoute() route = route.Path(r.FPrefix) } else { route = r.FRouter.NewRoute() route.Path(r.FPath) } if r.FHost != "" { route = route.Host(r.FHost) } if r.Methods != nil { route = route.Methods(r.FMethods...) } route.Handler(handler) return r }
func (m Match) SetRoute(r *mux.Route) *mux.Route { if m.Prefix != "" { r = r.PathPrefix(m.Prefix) } if m.Hosts != nil && len(m.Hosts) > 0 { for _, host := range m.Hosts { r = r.Host(host) } } if m.Methods != nil && len(m.Methods) > 0 { r = r.Methods(m.Methods...) } if m.Schemes != nil && len(m.Schemes) > 0 { for _, scheme := range m.Schemes { r = r.Schemes(scheme) } } if m.Queries != nil && len(m.Queries) > 0 { for _, m := range m.Queries { for k, v := range m { r = r.Queries(k, v) } } } if m.Headers != nil && len(m.Headers) > 0 { for _, m := range m.Headers { for k, v := range m { r = r.Headers(k, v) } } } if m.Custom != nil && len(m.Custom) > 0 { // lookup custom function by name // func(r *http.Request, rm *RouteMatch) bool } return r }