【发布时间】:2015-11-10 04:04:29
【问题描述】:
我必须使用 Mule ESB 创建一个提供一些相关信息的 API。为此,我需要与其他一些 API 提供商(例如 Wikipedia API)进行通信以获取信息并制作 JSON 响应以返回所需的信息。
PS:我使用 maven 来管理我的依赖项。
您对从哪里开始或可以提供帮助的依赖项/Mule 组件有任何想法吗?我会很感激的
【问题讨论】:
标签: api maven mule mule-studio
我必须使用 Mule ESB 创建一个提供一些相关信息的 API。为此,我需要与其他一些 API 提供商(例如 Wikipedia API)进行通信以获取信息并制作 JSON 响应以返回所需的信息。
PS:我使用 maven 来管理我的依赖项。
您对从哪里开始或可以提供帮助的依赖项/Mule 组件有任何想法吗?我会很感激的
【问题讨论】:
标签: api maven mule mule-studio
要创建您自己的 API,请从 APIkit 开始。
然后,要使用 REST,您有两个选择,利用 http connector 和 RAML 定义(仅适用于要使用的 api 是基于 REST 的)或使用 devkit 创建自己的连接器。
【讨论】:
您可以使用 Victor 提供的选项。这里有一些官方文档:
Publishing and Consuming APIs with Mule
这些选项需要骡子的中级知识。不用担心,如果你没有时间,你可以将所有 java 框架与 mule 一起使用:
发布 Basic Rest API(假设您不使用肥皂服务):
使用 http-listener + rest 组件 + java 实体创建流。
或者使用spring创建一个rest服务并将其部署在tomcat中,例如将请求参数发送到一些jms队列。在 mule 中创建一个 jms 接收组件。这从队列接收参数并将数据传递给下一个组件,以创建 json 响应并返回到 spring rest 服务。
消费休息服务
例如。您可以使用 apache 客户端并创建一个 maven 项目作为要在 java mule 组件中使用或调用的库:
public class MuleComponent {
public Object executeRestClient(Object muleMessage){
//based on apache client
MyRestClientLibrary client = MyRestClientLibrary ();
client.setUrl("http://wikipedia/rest/service/..");
Object someParameters = muleMessage.getProperty("someParameter"....
Object response = client.executeOperation01(someParameters);
return response;//data to be used by next component
}
}
任何需要使用来自维基百科服务的数据的 mule 流都可以使用此组件。
这可能是一个可能的解决方案:
<rest-inbound> ->
[get request params] ->
[consume-external-service(rest apache client)]->
[get data from DB or another source] ->
[build json response] ->
<rest-outbound>
问候。
【讨论】: