本文以实际场景为例介绍接入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}"
- 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}"
FORM
说明 FORM场景,接入RESTful协议支持开放为WebService协议。
服务配置
接入RESTful开放WebService,不支持配置出参。
接入后端服务
@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场景。