mirror of
https://github.com/gin-gonic/gin.git
synced 2025-04-06 03:57:46 +08:00
Merge ae04cc6576d8a33d3a6d0bba2a21818ef9040af2 into 8763f33c65f7df8be5b9fe7504ab7fcf20abb41d
This commit is contained in:
commit
06601b35e6
16
gin.go
16
gin.go
@ -299,6 +299,22 @@ func (engine *Engine) SetFuncMap(funcMap template.FuncMap) {
|
|||||||
engine.FuncMap = funcMap
|
engine.FuncMap = funcMap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetHandlerPath takes a name of a handler and returns a slice of matched paths associated with that handler.
|
||||||
|
func (engine *Engine) GetHandlerPath(handlerName string) []string {
|
||||||
|
handlers := engine.Routes()
|
||||||
|
var paths []string
|
||||||
|
|
||||||
|
for _, f := range handlers {
|
||||||
|
handler := strings.Split(f.Handler, ".")
|
||||||
|
|
||||||
|
if handler[len(handler)-1] == handlerName {
|
||||||
|
paths = append(paths, f.Path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return paths
|
||||||
|
}
|
||||||
|
|
||||||
// NoRoute adds handlers for NoRoute. It returns a 404 code by default.
|
// NoRoute adds handlers for NoRoute. It returns a 404 code by default.
|
||||||
func (engine *Engine) NoRoute(handlers ...HandlerFunc) {
|
func (engine *Engine) NoRoute(handlers ...HandlerFunc) {
|
||||||
engine.noRoute = handlers
|
engine.noRoute = handlers
|
||||||
|
18
gin_test.go
18
gin_test.go
@ -716,6 +716,24 @@ func TestPrepareTrustedCIRDsWith(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetHandlerPath(t *testing.T) {
|
||||||
|
r := New()
|
||||||
|
r.GET("/foo", handlerTest1)
|
||||||
|
r.POST("/bar", handlerTest2)
|
||||||
|
|
||||||
|
v := r.Group("/users")
|
||||||
|
{
|
||||||
|
v.GET("/:id1", handlerTest1)
|
||||||
|
v.POST("/:id2", handlerTest2)
|
||||||
|
}
|
||||||
|
|
||||||
|
p1 := r.GetHandlerPath("handlerTest1")
|
||||||
|
assert.Equal(t, p1, []string{"/foo", "/users/:id1"})
|
||||||
|
|
||||||
|
p2 := r.GetHandlerPath("handlerTest2")
|
||||||
|
assert.Equal(t, p2, []string{"/bar", "/users/:id2"})
|
||||||
|
}
|
||||||
|
|
||||||
func parseCIDR(cidr string) *net.IPNet {
|
func parseCIDR(cidr string) *net.IPNet {
|
||||||
_, parsedCIDR, err := net.ParseCIDR(cidr)
|
_, parsedCIDR, err := net.ParseCIDR(cidr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user