fix:duplicate route check (#2154)

Co-authored-by: 黄志荣 <huangzhirong@shuinfo.com>
master
fisnone 2 years ago committed by GitHub
parent edbf1a3b63
commit 685d14e662
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -232,20 +232,27 @@ func (p *Parser) invoke(linePrefix, content string) (v *Api, err error) {
// storeVerificationInfo stores information for verification
func (p *Parser) storeVerificationInfo(api *Api) {
routeMap := func(list []*ServiceRoute) {
routeMap := func(list []*ServiceRoute, prefix string) {
for _, g := range list {
handler := g.GetHandler()
if handler.IsNotNil() {
handlerName := handler.Text()
p.handlerMap[handlerName] = Holder
route := fmt.Sprintf("%s://%s", g.Route.Method.Text(), g.Route.Path.Text())
route := fmt.Sprintf("%s://%s", g.Route.Method.Text(), path.Join(prefix, g.Route.Path.Text()))
p.routeMap[route] = Holder
}
}
}
for _, each := range api.Service {
routeMap(each.ServiceApi.ServiceRoute)
var prefix string
if each.AtServer != nil {
pExp := each.AtServer.Kv.Get(prefixKey)
if pExp != nil {
prefix = pExp.Text()
}
}
routeMap(each.ServiceApi.ServiceRoute, prefix)
}
for _, each := range api.Type {

Loading…
Cancel
Save