本文以实际场景为例介绍接入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}"
      wsdl
  • 非公开访问(需要订购)的服务。
    在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的场景说明

服务配置WebServic-服务配置

接入后端服务

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>