44.8. REST producer 绑定


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

例如,要将 jetty 与 json 绑定模式一起使用,您可以在其他配置中配置它:

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

from("direct:start")
  .to("rest:post:user");
Copy to Clipboard Toggle word wrap

然后,在使用 rest producer 调用 REST 服务时,它会在调用 REST 服务前自动将任何 POJO 绑定到 json:

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

  template.sendBody("direct:start", user);
Copy to Clipboard Toggle word wrap

在上例中,我们发送 POJO 实例 UserPojo 作为邮件正文。由于我们已在其他配置中打开 JSon 绑定,因此在调用 REST 服务前,POJO 将从 POJO 打包为 JSon。

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

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

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

  from("direct:start")
    .to("rest:post:user?outType=com.foo.MyResponsePojo");
Copy to Clipboard Toggle word wrap
注意

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat