diff --git a/protocol/rest/config/reader/rest_config_reader.go b/protocol/rest/config/reader/rest_config_reader.go index 873af9924b5644158024b22c24aa9eebbf1bf187..2338790ea9926b1ddbf44fc476f092156d8fe2fa 100644 --- a/protocol/rest/config/reader/rest_config_reader.go +++ b/protocol/rest/config/reader/rest_config_reader.go @@ -62,7 +62,7 @@ func (cr *RestConfigReader) ReadConsumerConfig(reader *bytes.Buffer) error { for key, rc := range restConsumerConfig.RestServiceConfigsMap { rc.Client = getNotEmptyStr(rc.Client, restConsumerConfig.Client, constant.DEFAULT_REST_CLIENT) rc.RestMethodConfigsMap = initMethodConfigMap(rc, restConsumerConfig.Consumes, restConsumerConfig.Produces) - restConsumerServiceConfigMap[strings.TrimPrefix(key, "/")] = rc + restConsumerServiceConfigMap[key] = rc } config.SetRestConsumerServiceConfigMap(restConsumerServiceConfigMap) return nil @@ -79,7 +79,7 @@ func (cr *RestConfigReader) ReadProviderConfig(reader *bytes.Buffer) error { for key, rc := range restProviderConfig.RestServiceConfigsMap { rc.Server = getNotEmptyStr(rc.Server, restProviderConfig.Server, constant.DEFAULT_REST_SERVER) rc.RestMethodConfigsMap = initMethodConfigMap(rc, restProviderConfig.Consumes, restProviderConfig.Produces) - restProviderServiceConfigMap[strings.TrimPrefix(key, "/")] = rc + restProviderServiceConfigMap[key] = rc } config.SetRestProviderServiceConfigMap(restProviderServiceConfigMap) return nil diff --git a/protocol/rest/config/rest_config.go b/protocol/rest/config/rest_config.go index 4732dd8e4eae3ba874fdd8ed95380e6ace3ab66d..27c67db12d1477470550a2f75779b25113781a04 100644 --- a/protocol/rest/config/rest_config.go +++ b/protocol/rest/config/rest_config.go @@ -123,13 +123,13 @@ func (c *RestMethodConfig) UnmarshalYAML(unmarshal func(interface{}) error) erro } // nolint -func GetRestConsumerServiceConfig(path string) *RestServiceConfig { - return restConsumerServiceConfigMap[path] +func GetRestConsumerServiceConfig(id string) *RestServiceConfig { + return restConsumerServiceConfigMap[id] } // nolint -func GetRestProviderServiceConfig(path string) *RestServiceConfig { - return restProviderServiceConfigMap[path] +func GetRestProviderServiceConfig(id string) *RestServiceConfig { + return restProviderServiceConfigMap[id] } // nolint diff --git a/protocol/rest/rest_invoker_test.go b/protocol/rest/rest_invoker_test.go index 18843d2ae4e8dc54683226f2fb0c325e58c7e4ed..b6bc9806534979976d8c52cd66142a71f408fb06 100644 --- a/protocol/rest/rest_invoker_test.go +++ b/protocol/rest/rest_invoker_test.go @@ -44,7 +44,7 @@ const ( "application=BDTService&category=providers&default.timeout=10000&dubbo=dubbo-provider-golang-1.0.0&" + "environment=dev&interface=com.ikurento.user.UserProvider&ip=192.168.56.1&methods=GetUser%2C&" + "module=dubbogo+user-info+server&org=ikurento.com&owner=ZX&pid=1447&revision=0.0.1&" + - "side=provider&timeout=3000×tamp=1556509797245" + "side=provider&timeout=3000×tamp=1556509797245&bean.name=com.ikurento.user.UserProvider" ) func TestRestInvokerInvoke(t *testing.T) { diff --git a/protocol/rest/rest_protocol.go b/protocol/rest/rest_protocol.go index 05e119b0540b5f887d53d006e41d3083d1c46de4..d19bd002fc4974c57f50a8595ee25debceb27921 100644 --- a/protocol/rest/rest_protocol.go +++ b/protocol/rest/rest_protocol.go @@ -18,7 +18,6 @@ package rest import ( - "strings" "sync" "time" ) @@ -72,7 +71,8 @@ func (rp *RestProtocol) Export(invoker protocol.Invoker) protocol.Exporter { url := invoker.GetUrl() serviceKey := url.ServiceKey() exporter := NewRestExporter(serviceKey, invoker, rp.ExporterMap()) - restServiceConfig := rest_config.GetRestProviderServiceConfig(strings.TrimPrefix(url.Path, "/")) + id := url.GetParam(constant.BEAN_NAME_KEY, "") + restServiceConfig := rest_config.GetRestProviderServiceConfig(id) if restServiceConfig == nil { logger.Errorf("%s service doesn't has provider config", url.Path) return nil @@ -94,7 +94,8 @@ func (rp *RestProtocol) Refer(url *common.URL) protocol.Invoker { if t, err := time.ParseDuration(requestTimeoutStr); err == nil { requestTimeout = t } - restServiceConfig := rest_config.GetRestConsumerServiceConfig(strings.TrimPrefix(url.Path, "/")) + id := url.GetParam(constant.BEAN_NAME_KEY, "") + restServiceConfig := rest_config.GetRestConsumerServiceConfig(id) if restServiceConfig == nil { logger.Errorf("%s service doesn't has consumer config", url.Path) return nil