|
|
|
@ -42,18 +42,24 @@ func (s subrouter) ServeHTTP(w http.ResponseWriter, r *http.Request) { |
|
|
|
s.h.ServeHTTP(w, r) |
|
|
|
} |
|
|
|
|
|
|
|
// SubRouter is a helper middleware that makes writing sub-routers easier.
|
|
|
|
//
|
|
|
|
// If you register a sub-router under a key like "/admin/*", Goji's router will
|
|
|
|
// automatically set c.URLParams["*"] to the unmatched path suffix. This
|
|
|
|
// middleware will help you set the request URL's Path to this unmatched suffix,
|
|
|
|
// allowing you to write sub-routers with no knowledge of what routes the parent
|
|
|
|
// router matches.
|
|
|
|
//
|
|
|
|
// Since Go's regular expressions do not allow you to create a capturing group
|
|
|
|
// named "*", SubRouter also accepts the string "_". For instance, to duplicate
|
|
|
|
// the semantics of the string pattern "/foo/*", you might use the regular
|
|
|
|
// expression "^/foo(?P<_>/.*)$".
|
|
|
|
/* |
|
|
|
SubRouter is a helper middleware that makes writing sub-routers easier. |
|
|
|
|
|
|
|
If you register a sub-router under a key like "/admin/*", Goji's router will |
|
|
|
automatically set c.URLParams["*"] to the unmatched path suffix. This middleware |
|
|
|
will help you set the request URL's Path to this unmatched suffix, allowing you |
|
|
|
to write sub-routers with no knowledge of what routes the parent router matches. |
|
|
|
|
|
|
|
Since Go's regular expressions do not allow you to create a capturing group |
|
|
|
named "*", SubRouter also accepts the string "_". For instance, to duplicate the |
|
|
|
semantics of the string pattern "/foo/*", you might use the regular expression |
|
|
|
"^/foo(?P<_>/.*)$". |
|
|
|
|
|
|
|
This middleware is Match-aware: it will un-set any explicit routing information |
|
|
|
contained in the Goji context in order to prevent routing loops when using |
|
|
|
explicit routing with sub-routers. See the documentation for Mux.Router for |
|
|
|
more. |
|
|
|
*/ |
|
|
|
func SubRouter(c *web.C, h http.Handler) http.Handler { |
|
|
|
return subrouter{c, h} |
|
|
|
} |