mirror of
https://github.com/gin-gonic/gin.git
synced 2025-12-13 13:12:17 +08:00
Merge ae04cc6576d8a33d3a6d0bba2a21818ef9040af2 into f416d1e594a027063e73f66ac873a82113036fd8
This commit is contained in:
commit
91c712e4a9
16
gin.go
16
gin.go
@ -322,6 +322,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
@ -897,6 +897,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