在尝试红色中列出的场景时,我无法使用 WSO2 ESB 从浏览器 [Rest 客户端] 调用 REST 后端。
Content Type 和 MessageFormatter 已经尝试过了,是我做错了什么还是这是 REST API 的限制。
方案 A 的源代码:
<?xml version="1.0" encoding="UTF-8"?>
<api xmlns="http://ws.apache.org/ns/synapse" name="InvokeASservice" context="/invokeWS" hostname="10.203.101.76">
<resource methods="GET" uri-template="/{str1}">
<inSequence>
<log level="full" separator=",">
<property name="sequence" value="** Request Recieved**"/>
</log>
<property name="REST_URL_POSTFIX" expression="fn:concat('/get?id=',get-property('uri.var.str1'))" scope="axis2" type="STRING"/>
<send>
<endpoint>
<address uri="http://10.203.101.76:9765/services/PersonInfoService.PersonInfoServiceHttpEndpoint/"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log level="full" separator=",">
<property name="sequence" value="** Message recieved**"/>
</log>
<property name="ContentType" value="application/xml" scope="axis2"/>
<send/>
</outSequence>
<faultSequence/>
</resource>
</api>
浏览器错误:
#####################更新#####################
方案 A 似乎在更改源后工作
<api xmlns="http://ws.apache.org/ns/synapse" name="InvokeASservice" context="/invokeWS" hostname="10.203.101.76">
<resource methods="GET" uri-template="/{str1}">
<inSequence>
<log level="full" separator=",">
<property name="sequence" value="** Request Recieved**"/>
</log>
<property name="REST_URL_POSTFIX" expression="fn:concat('/get?id=',get-property('uri.var.str1'))" scope="axis2" type="STRING"/>
<send>
<endpoint>
<address uri="http://10.203.101.76:9765/services/PersonInfoService.PersonInfoServiceHttpEndpoint/"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
<faultSequence/>
</resource>
</api>
但是,场景 C 仍然是一个未解决的难题,响应以 xml 格式出现。尝试将以下内容添加到 outSequence。没有帮助
<outSequence>
<property name="messageType" value="application/json" scope="axis2" type="STRING"/>
<send/>
</outSequence>