使用 Mule ESB 创建 API

Create API using Mule ESB

我必须使用 Mule ESB 创建一个 API 来提供一些相关信息。为此,我需要与其他一些 API 提供商(例如维基百科 API)进行交流,以获取信息并制作 JSON 对 return 所需信息的响应。

PS: 我使用maven来管理我的依赖。

关于从哪里开始或可以提供帮助的 dependencies/Mule 组件,您有什么想法吗?我会很感激

要创建自己的 API,请从 APIkit 开始。

然后消耗休息你有两个选择,利用http connector and a RAML definition (only applicable if the api to be consumed is REST based) or create your own connector with devkit

您可以使用 Victor 提供的选项。这里有一些官方文档:

Publishing and Consuming APIs with Mule

这些选项需要 mule 的中级知识。别担心,如果你没有时间,你可以使用所有 java 框架与 mule:

发布 Basic Rest API(假设您不使用 soap 服务):

使用 http-listener + rest 组件 + java 实体创建流。

REST Component basic example

或者使用 spring 创建休息服务并将其部署在 tomcat 中,并将请求参数发送到某个 jms 队列。在 mule 中创建一个 jms 接收组件。这从队列接收参数并将数据传递到下一个组件,以创建 json 响应和 return 到 spring 休息服务。

使用休息服务

例如。您可以使用 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>

此致。