代码拉取完成,页面将自动刷新
package gatewayRouter
import (
"errors"
"strings"
)
type RouterVO struct {
Id string `json:"id"` // json字段
Uri string `json:"uri"` // json字段
Order int `json:"order"` // json字段
Predicates []map[string]interface{} `json:"predicates"` // json字段
Filters []map[string]interface{} `json:"filters"` // json字段
Metadata map[string]interface{} `json:"metadata"` // json字段
}
// BuildVO 使用范例:BuildVO("service","channel-serialport-native","/service/channel-serialport-native/**",""http://localhost:9201/service/channel-serialport-native")
func (e *RouterVO) buildVO(serviceType string, serviceName string, serviceUri string, redirectUri string) *RouterVO {
vo := &RouterVO{}
vo.Id = serviceType + ":" + serviceName
vo.Uri = redirectUri
vo.Metadata = make(map[string]interface{})
vo.Order = 0
// predicates
vo.Predicates = make([]map[string]interface{}, 0)
predicate := make(map[string]interface{})
predicate["name"] = "Path"
args := make(map[string]interface{})
args["_genkey_0"] = serviceUri
predicate["args"] = args
vo.Predicates = append(vo.Predicates, predicate)
// filters
vo.Filters = make([]map[string]interface{}, 0)
filters := make(map[string]interface{})
filters["name"] = "StripPrefix"
args = make(map[string]interface{})
args["_genkey_0"] = 2
filters["args"] = args
vo.Filters = append(vo.Filters, filters)
return vo
}
func (e *RouterVO) getParams() (string, string, string, error) {
if len(e.Predicates) == 0 {
return "", "", "", errors.New("predicates缺失")
}
predicate := e.Predicates[0]
val, ok := predicate["args"]
if !ok {
return "", "", "", errors.New("predicates.args缺失")
}
args := val.(map[string]interface{})
val, ok = args["_genkey_0"]
if !ok {
return "", "", "", errors.New("predicates.args._genkey_0缺失")
}
serviceUri := val.(string)
// 分拆数据:获得http://localhost:9101/kernel/manager中的http://localhost:9101部分
idx := strings.Index(e.Uri, "://") + len("://")
idx += strings.Index(e.Uri[idx:len(e.Uri)], "/")
uri := e.Uri[0:idx]
return e.Id, uri, serviceUri, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。