我需要使用HTTP GET从RESTful Web服务检索JSON结构,
修改该数据并将生成的JSON POST到该Web服务,我将非常感谢如何获取该JSON并将其提供给第二个Web服务调用。
<http:connector name="Service-Connector_restRef" proxyHostname="" proxyPassword="" proxyPort="${Service-Connector-One.ProxyPort}" proxyUsername="" />
<http:outbound-endpoint address="http://${Service.Host}:8080/#[header:_REST_PATH]" exchange-pattern="request-response" followRedirects="true" responseTimeout="10000" connector-ref="Service-Connector_restRef">
Mule站点使用AnypointStudio提供一些说明,但我必须修改现有的Mule流程,因此我需要使用XML配置文件。 TIA。
答案 0 :(得分:0)
您仍然可以使用工作室更轻松地编辑现有流程。无论是导入,还是剪切和粘贴到项目中,都是一件简单的事情。这样做会给你很多好处。您是否可以选择迁移到新的运行时?如果您使用的是更新的运行时,则可以使用Dateweave从一种JSON格式转换为另一种JSON格式。如果您使用的是旧版本,请使用Datamapper而不是以下示例。
然而,您的问题是关于链接Restful HTTP调用。当您调用第一个休息服务时,您将收到#[payload],然后您可以使用datamapper或dataweave将其转换为新格式。然后在转换后添加一个新的http端点,新的有效负载将作为调用的一部分进入,因为它在流程中跟随。您需要确保在两者上都适当地设置HTTP操作。
作为XML的骨架:
<http:request-config name="HTTP_Request_Configuration_1" host="localhost" port="8082" doc:name="HTTP Request Configuration"/>
<http:request-config name="HTTP_Request_Configuration_2" host="localhost" port="8083" doc:name="HTTP Request Configuration"/>
<flow name="chainFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/chain" doc:name="HTTP"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<http:request config-ref="HTTP_Request_Configuration_1" path="/path1" method="GET" doc:name="HTTP"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
{
}]]></dw:set-payload>
</dw:transform-message>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<http:request config-ref="HTTP_Request_Configuration_2" path="/path2" method="POST" doc:name="HTTP"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
</flow>