本文以实际场景为例介绍接入HSF协议开放WebService协议,以帮助您深入理解开放服务。
背景信息
本文仅介绍在实际场景中接入HSF协议开放WebService服务时一些重要的配置步骤和参数,如需了解完整的流程和参数解释,请参见发布后端已有服务。
调用CSB开放服务时,支持多种请求方式,请根据实际场景选择:
- 公开访问(无需订购)的服务。
- curl
curl -H 'Content-type:application/xml' -X POST -d "${Body}" \ http://CSB服务地址:9081/${服务名称}/${服务版本}/${HSF方法}?wsdl
- WS-SDK
java -jar ws-client.jar -d -api ${服务名称} -version ${服务版本} \ -ea ${ea} -ns ${ns} \ -sname ${sname} -pname ${pname} \ -rd "${Body}"
- curl
- 非公开访问(需要订购)的服务。
在WS-SDK的基础上增加
-ak ${访问凭证ak} -sk ${访问凭证sk}
。java -jar ws-client.jar -d -api ${服务名称} -version ${服务版本} -ak ${访问凭证ak} -sk ${访问凭证sk}\ -wa ${wa} -ea ${ea} -ns ${ns} \ -sname ${sname} -pname ${pname} \ -rd "${Body}"
接入HSF开放WebService的场景说明
服务配置
接入后端服务
ResultDTO<Item> buy(Item item, Customer customer);
WSDL
http://CSB服务地址:9081/${服务名称}/${服务版本}/${HSF方法}?wsdl
调用服务
#使用WS SDK请求CSB服务。
java -jar ws-client.jar -d -api item.hsf.buy -version 1.0.0 \
-ea http://csb.target.server:9081/item.hsf.buy/1.0.0/buy \
-ns http://itemcenter.carshop.edas.alibaba.com/ \
-sname item.hsf.buy \
-pname addPortType \
-rd '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wst="http://itemcenter.carshop.edas.alibaba.com/">
<soapenv:Header/>
<soapenv:Body>
<wst:buy>
<item>
<itemName>benz</itemName>
<quantity>1</quantity>
</item>
<customer>
<name>jack</name>
<age>30</age>
</customer>
</wst:buy>
</soapenv:Body></soapenv:Envelope>'
请求结果
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<soap:Body>
<ns1:buyResponse
xmlns:ns1="http://itemcenter.carshop.edas.alibaba.com/">
<return>
<code>0</code>
<msg>SUCCESS</msg>
<result>
<itemName>benz</itemName>
<quantity>2</quantity>
<trace>
<traceId>0ba783c115673284841491003d****</traceId>
<rpcId>0.1</rpcId>
<requestId>0ba783c115673284839321001d****</requestId>
</trace>
</result>
</return>
</ns1:buyResponse>
</soap:Body>
</soap:Envelope>