Consumer的rest client
consumer发送申请,次要是用Spring的RestTemplate,ServiceComb做了一层包装,兼容ServiceComb格局的uri,如cse://business/business/v1/channel/news/subscribe。包装类次要的类图如下,
以servicecomb-java-chassis我的项目下的demo例子,
如下是把cse://格局的uri调用过程中要害办法,
class ConsumerMain:
new Consumer().invokeBusiness("cse://business/business/v1", new ChannelRequestBase());
...
class Consumer:
ResponseEntity<AppClientDataRsp> response = template.postForEntity(url, entity, AppClientDataRsp.class);
...
class RestTemplateWrapper:
getRestTemplate(url).postForEntity(url, request, responseType, uriVariables);
...
class RestTemplate:
(ResponseEntity)nonNull(this.execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables));
this.getUriTemplateHandler().expand(url, uriVariables);
...
abstract class AbstractUriTemplateHandler:
public URI expand(String uriTemplate, Object... uriVariables) {
URI url = this.expandInternal(uriTemplate, uriVariables);
return this.insertBaseUrl(url);
}
...
class CseUriTemplateHandler:
createUri(uriTemplate, uriComponents);
发表回复