From 8eb02a9f12e527fe2ce9ab3b640579a6104f2d44 Mon Sep 17 00:00:00 2001 From: Dj Gilcrease Date: Wed, 8 Jul 2015 09:47:01 -0700 Subject: [PATCH] Add URLPathTemplate to Route to make it easier to generate a API page that lists all routes by template --- route.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/route.go b/route.go index 6cb12d3..77fca93 100644 --- a/route.go +++ b/route.go @@ -508,6 +508,19 @@ func (r *Route) URLPath(pairs ...string) (*url.URL, error) { }, nil } +// URLPathTemplate returns the template used to match against for the route +// +// The route must have a path defined. +func (r *Route) URLPathTemplate() (string, error) { + if r.err != nil { + return "", r.err + } + if r.regexp == nil || r.regexp.path == nil { + return "", errors.New("mux: route doesn't have a path") + } + return r.regexp.path.template, nil +} + // prepareVars converts the route variable pairs into a map. If the route has a // BuildVarsFunc, it is invoked. func (r *Route) prepareVars(pairs ...string) (map[string]string, error) {