mirror of
https://github.com/astaxie/beego.git
synced 2024-11-22 07:20:55 +00:00
beego: autorouter params
This commit is contained in:
parent
17a9c3c3a9
commit
14dee37a21
12
router.go
12
router.go
@ -346,19 +346,23 @@ func (p *ControllerRegistor) AddAutoPrefix(prefix string, c ControllerInterface)
|
|||||||
reflectVal := reflect.ValueOf(c)
|
reflectVal := reflect.ValueOf(c)
|
||||||
rt := reflectVal.Type()
|
rt := reflectVal.Type()
|
||||||
ct := reflect.Indirect(reflectVal).Type()
|
ct := reflect.Indirect(reflectVal).Type()
|
||||||
controllerName := strings.ToLower(strings.TrimSuffix(ct.Name(), "Controller"))
|
controllerName := strings.TrimSuffix(ct.Name(), "Controller")
|
||||||
for i := 0; i < rt.NumMethod(); i++ {
|
for i := 0; i < rt.NumMethod(); i++ {
|
||||||
if !utils.InSlice(rt.Method(i).Name, exceptMethod) {
|
if !utils.InSlice(rt.Method(i).Name, exceptMethod) {
|
||||||
route := &controllerInfo{}
|
route := &controllerInfo{}
|
||||||
route.routerType = routerTypeBeego
|
route.routerType = routerTypeBeego
|
||||||
route.methods = map[string]string{"*": rt.Method(i).Name}
|
route.methods = map[string]string{"*": rt.Method(i).Name}
|
||||||
route.controllerType = ct
|
route.controllerType = ct
|
||||||
pattern := path.Join(prefix, controllerName, strings.ToLower(rt.Method(i).Name), "*")
|
pattern := path.Join(prefix, strings.ToLower(controllerName), strings.ToLower(rt.Method(i).Name), "*")
|
||||||
patternfix := path.Join(prefix, controllerName, strings.ToLower(rt.Method(i).Name))
|
patternInit := path.Join(prefix, controllerName, rt.Method(i).Name, "*")
|
||||||
|
patternfix := path.Join(prefix, strings.ToLower(controllerName), strings.ToLower(rt.Method(i).Name))
|
||||||
|
patternfixInit := path.Join(prefix, controllerName, rt.Method(i).Name)
|
||||||
route.pattern = pattern
|
route.pattern = pattern
|
||||||
for _, m := range HTTPMETHOD {
|
for _, m := range HTTPMETHOD {
|
||||||
p.addToRouter(m, pattern, route)
|
p.addToRouter(m, pattern, route)
|
||||||
|
p.addToRouter(m, patternInit, route)
|
||||||
p.addToRouter(m, patternfix, route)
|
p.addToRouter(m, patternfix, route)
|
||||||
|
p.addToRouter(m, patternfixInit, route)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -603,7 +607,7 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
|
|||||||
|
|
||||||
if !findrouter {
|
if !findrouter {
|
||||||
if t, ok := p.routers[r.Method]; ok {
|
if t, ok := p.routers[r.Method]; ok {
|
||||||
runObject, p := t.Match(strings.ToLower(r.URL.Path))
|
runObject, p := t.Match(r.URL.Path)
|
||||||
if r, ok := runObject.(*controllerInfo); ok {
|
if r, ok := runObject.(*controllerInfo); ok {
|
||||||
routerInfo = r
|
routerInfo = r
|
||||||
findrouter = true
|
findrouter = true
|
||||||
|
Loading…
Reference in New Issue
Block a user