275.6. REST producer 绑定

REST 制作者支持使用 JSon 或 XML (如 rest-dsl )的绑定。

例如,要在其余配置中打开对 json 绑定模式使用 jetty:

restConfiguration().component("jetty").host("localhost").port(8080).bindingMode(RestBindingMode.json);

from("direct:start")
  .to("rest:post:user");

然后,当使用其他制作者调用 REST 服务时,它将在调用 REST 服务前自动将任何 POJO 绑定到 json:

  UserPojo user = new UserPojo();
  user.setId(123);
  user.setName("Donald Duck");

  template.sendBody("direct:start", user);

在上面的示例中,我们发送 POJO 实例 UserPojo 作为消息正文。由于我们在其余配置中打开了 JSon 绑定,因此 POJO 会在调用 REST 服务之前从 POJO 派生到 JSon。

但是,如果要为响应消息执行绑定(例如 REST 服务发回为响应)您需要配置 outType 选项以指定 POJO 到 JSon 到 POJO 的类名。

例如,如果 REST 服务返回 JSon 有效负载,它绑定到 com.foo.MyResponsePojo,您可以按照如下所示进行配置:

  restConfiguration().component("jetty").host("localhost").port(8080).bindingMode(RestBindingMode.json);

  from("direct:start")
    .to("rest:post:user?outType=com.foo.MyResponsePojo");
重要

如果您希望 POJO 绑定到 POJO,则必须配置 outType 选项,以获取从调用 REST 服务收到的响应消息。