我想确定是否使用 -
泽西(JAX-RS)具有基于HTTP的入站端点.
使用基于HTTP的入站端点,然后检查HTTP标头数据(如http.method,http.query.params,http.query.string等)以确定REST方法.即基于非泽西岛的自定义方法来实现REST.
方法#1的优点
标准:基于JAX-RS标准的方法,用于在Java中实现休息服务.
文档化很容易:生成文档非常简单,因为有许多工具使用JAX-RS注释生成文档.
方法#1的缺点
如果我们必须在Mule中使用Jersey,则Jersey方法充当有效载荷数据的传递.例-
@POST
@Produces(MediaType.APPLICATION_JSON)
public String create(String jsonPayload) {
logger.debug("Received and added data :" jasonPayload);
return jsonPayload;
Run Code Online (Sandbox Code Playgroud)
在我们的用例中,我们必须将此数据传递到下一个流,它将其插入数据库或转发到其他Web服务.我们不想在此类中注入mule特定代码来从create方法中调用其他Mule流.我们别无选择,只能通过这种方法传递有效载荷并在骡子流中处理它.
在Jersey进程创建方法之后,它创建一个封装有效负载的Response对象.如果我们想对有效负载做一些事情,那么我们必须首先从Response对象中提取有效负载.这是一个不必要的麻烦.
有什么建议,意见,想法吗?
我们不想在此类中注入 mule 特定代码来从 create 方法中调用其他 Mule 流程。我们别无选择,只能将有效负载传递出此方法并在 mule 流中处理它。
我不同意这种说法:组件绑定将无 Mule 的自定义接口注入到您自己的类中。这是我推荐您使用的方法:http ://www.mulesoft.org/documentation/display/current/Component+Bindings