本文以实际场景为例介绍接入RESTful协议开放WebService协议,以帮助您深入理解开放服务。

背景信息

本文仅介绍在实际场景中接入RESTful协议开放WebService协议的服务时一些重要的配置步骤和参数,如需了解完整的流程和参数解释,请参见发布后端已有服务

调用CSB开放服务时,支持多种请求方式,请根据实际场景选择:
  • 公开访问(无需订购)的服务。
    • curl
      curl -H 'Content-type:application/xml' -X POST -d "${Body}" \
      http://CSB服务地址:9081/${服务名称}/${服务版本}/ws2ws?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}"

FORM

说明 FORM场景,接入RESTful协议支持开放为WebService协议。

服务配置

接入RESTful开放WebService,不支持配置出参。

FROM-服务配置

接入后端服务

@PostMapping("/item/form/add")
public ResultDTO<Item> add(@JsonParam(value = "item") Item item);

请求代码

#使用WS SDK请求CSB服务
java -jar ws-client.jar -d -api item.form.add -version 1.0.0 \
-ea http://csb.target.server:9081/item.form.add/1.0.0/ws2restful \
-ns http://ws2restful.item.form.add.csb/ \
-sname item.form.add \
-pname ws2restfulPort \
-rd '<soapenv:Envelope  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wst="http://ws2restful.item.form.add.csb/">
    <soapenv:Header/>
    <soapenv:Body>
      <wst:ws2restful>
        <item>
          <itemName>bmw</itemName>
          <quantity>10</quantity>
        </item>
      </wst:ws2restful>
    </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:ws2restfulResponse
            xmlns:ns1="http://ws2restful.item.form.add.csb/">
            <return>
                {
                    "code": "0",
                    "msg": "SUCCESS",
                    "innerMsg": null,
                    "result": {
                        "trace": {
                            "traceId": "0ba783c115673287819481003****",
                            "rpcId": "0",
                            "requestId": "0ba783c115673287816961001d****"
                        },
                        "itemName": "bmw",
                        "quantity": 10
                    }
                }
            </return>
        </ns1:ws2restfulResponse>
    </soap:Body>
</soap:Envelope>

JSON

说明 接入RESTful发布WebService,不支持JSON场景。