beego: improve the admin router print
Showing
2 changed files
with
34 additions
and
22 deletions
| ... | @@ -122,18 +122,30 @@ func listConf(rw http.ResponseWriter, r *http.Request) { | ... | @@ -122,18 +122,30 @@ func listConf(rw http.ResponseWriter, r *http.Request) { |
| 122 | case "router": | 122 | case "router": |
| 123 | fmt.Fprintln(rw, "Print all router infomation:") | 123 | fmt.Fprintln(rw, "Print all router infomation:") |
| 124 | for _, router := range BeeApp.Handlers.fixrouters { | 124 | for _, router := range BeeApp.Handlers.fixrouters { |
| 125 | if router.routerType == routerTypeBeego { | ||
| 125 | if router.hasMethod { | 126 | if router.hasMethod { |
| 126 | fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name()) | 127 | fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name()) |
| 127 | } else { | 128 | } else { |
| 128 | fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name()) | 129 | fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name()) |
| 129 | } | 130 | } |
| 131 | } else if router.routerType == routerTypeRESTFul { | ||
| 132 | fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.runfunction) | ||
| 133 | } else if router.routerType == routerTypeHandler { | ||
| 134 | fmt.Fprintln(rw, router.pattern, "----", router.handler) | ||
| 135 | } | ||
| 130 | } | 136 | } |
| 131 | for _, router := range BeeApp.Handlers.routers { | 137 | for _, router := range BeeApp.Handlers.routers { |
| 138 | if router.routerType == routerTypeBeego { | ||
| 132 | if router.hasMethod { | 139 | if router.hasMethod { |
| 133 | fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name()) | 140 | fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name()) |
| 134 | } else { | 141 | } else { |
| 135 | fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name()) | 142 | fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name()) |
| 136 | } | 143 | } |
| 144 | } else if router.routerType == routerTypeRESTFul { | ||
| 145 | fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.runfunction) | ||
| 146 | } else if router.routerType == routerTypeHandler { | ||
| 147 | fmt.Fprintln(rw, router.pattern, "----", router.handler) | ||
| 148 | } | ||
| 137 | } | 149 | } |
| 138 | if BeeApp.Handlers.enableAuto { | 150 | if BeeApp.Handlers.enableAuto { |
| 139 | for controllerName, methodObj := range BeeApp.Handlers.autoRouter { | 151 | for controllerName, methodObj := range BeeApp.Handlers.autoRouter { | ... | ... |
| ... | @@ -525,7 +525,7 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { | ... | @@ -525,7 +525,7 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { |
| 525 | } | 525 | } |
| 526 | controllName := strings.Join(paths[:len(paths)-1], ".") | 526 | controllName := strings.Join(paths[:len(paths)-1], ".") |
| 527 | methodName := paths[len(paths)-1] | 527 | methodName := paths[len(paths)-1] |
| 528 | for _, route := range p.fixrouters { | 528 | for _, route := range p.routers { |
| 529 | if route.controllerType.Name() == controllName { | 529 | if route.controllerType.Name() == controllName { |
| 530 | var finded bool | 530 | var finded bool |
| 531 | if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) { | 531 | if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) { |
| ... | @@ -550,13 +550,27 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { | ... | @@ -550,13 +550,27 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { |
| 550 | if !finded { | 550 | if !finded { |
| 551 | continue | 551 | continue |
| 552 | } | 552 | } |
| 553 | if len(values) > 0 { | 553 | var returnurl string |
| 554 | return route.pattern + "?" + urlv.Encode() | 554 | var i int |
| 555 | var startreg bool | ||
| 556 | for _, v := range route.regex.String() { | ||
| 557 | if v == '(' { | ||
| 558 | startreg = true | ||
| 559 | continue | ||
| 560 | } else if v == ')' { | ||
| 561 | startreg = false | ||
| 562 | returnurl = returnurl + urlv.Get(route.params[i]) | ||
| 563 | i++ | ||
| 564 | } else if !startreg { | ||
| 565 | returnurl = string(append([]rune(returnurl), v)) | ||
| 555 | } | 566 | } |
| 556 | return route.pattern | ||
| 557 | } | 567 | } |
| 568 | if route.regex.MatchString(returnurl) { | ||
| 569 | return returnurl | ||
| 558 | } | 570 | } |
| 559 | for _, route := range p.routers { | 571 | } |
| 572 | } | ||
| 573 | for _, route := range p.fixrouters { | ||
| 560 | if route.controllerType.Name() == controllName { | 574 | if route.controllerType.Name() == controllName { |
| 561 | var finded bool | 575 | var finded bool |
| 562 | if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) { | 576 | if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) { |
| ... | @@ -581,24 +595,10 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { | ... | @@ -581,24 +595,10 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { |
| 581 | if !finded { | 595 | if !finded { |
| 582 | continue | 596 | continue |
| 583 | } | 597 | } |
| 584 | var returnurl string | 598 | if len(values) > 0 { |
| 585 | var i int | 599 | return route.pattern + "?" + urlv.Encode() |
| 586 | var startreg bool | ||
| 587 | for _, v := range route.regex.String() { | ||
| 588 | if v == '(' { | ||
| 589 | startreg = true | ||
| 590 | continue | ||
| 591 | } else if v == ')' { | ||
| 592 | startreg = false | ||
| 593 | returnurl = returnurl + urlv.Get(route.params[i]) | ||
| 594 | i++ | ||
| 595 | } else if !startreg { | ||
| 596 | returnurl = string(append([]rune(returnurl), v)) | ||
| 597 | } | ||
| 598 | } | ||
| 599 | if route.regex.MatchString(returnurl) { | ||
| 600 | return returnurl | ||
| 601 | } | 600 | } |
| 601 | return route.pattern | ||
| 602 | } | 602 | } |
| 603 | } | 603 | } |
| 604 | if p.enableAuto { | 604 | if p.enableAuto { | ... | ... |
-
Please register or sign in to post a comment