Camel REST Bean 链接

2024-02-12

我目前有一个 REST 路由构建器,如下所示:

rest("/v1")
  .post("/create")
    .to("bean:myAssembler?method=assemble(${in.header.content})")
    .to("bean:myService?method=create(?)");

bean myAssembler 获取原始 JSON 并将其转换为 MyObject。然后返回该对象,我希望将其转发到 myService 作为其创建方法的参数。

我怎样才能使用骆驼做到这一点?


如果您将 bean 作为方法的参数(请参阅完整列表),您的 bean 将自动绑定到特定参数,例如 Exchange参数绑定 http://camel.apache.org/bean-binding.html).

一种解决方案是定义您的路线和 bean,如下所示:

restConfiguration()
.component("restlet")
.bindingMode(RestBindingMode.json)
.skipBindingOnErrorCode(false)
.port(port);    

rest("/v1")
    .post("/create")
        .route()
            .to("bean:myAssembler?method=assemble")
            .to("bean:myService?method=create");

像这样的豆子

public class MyAssembler {
    public void assemble(Exchange exchange) {
      String content = exchange.getIn().getHeader("content", String.class);
      // Create MyObject here.
      MyObject object; // ...transformation here.
      exchange.getOut().setBody(object);
   }
}

and this

public class MyService {
    public void create(MyObject body) {
        // Do what ever you want with the content.
        // Here it's just log.
        LOG.info("MyObject is: " + body.toString());
     }
}

显示配置的依赖项是

org.apache.camel/camel-core/2.15.3
org.apache.camel/camel-spring/2.15.3
org.apache.camel/camel-restlet/2.15.3
javax.servlet/javax.servlet-api/3.1.0
org.apache.camel/camel-jackson/2.15.3
org.apache.camel/camel-xmljson/2.15.3
xom/xom/1.2.5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Camel REST Bean 链接 的相关文章

随机推荐