【问题标题】:Create Apache Camel Component for 3rd-Party REST API?为 3rd-Party REST API 创建 Apache Camel 组件?
【发布时间】:2016-03-24 20:10:41
【问题描述】:

我正在熟悉 Apache Camel。我已经掌握了路由的基础知识,现在我想研究创建自己的 Component 以在我正在处理的新项目中加以利用。

我们使用了第 3 方商业 SaaS 产品,它们提供 RESTful API 和基于 Java 的 SDK(本质上封装了 REST API)。鉴于这种情况,实现这一目标的最佳方法是什么?是不是要创建一个新的Component/Endpoint/Producer/Consumer 类来利用服务的Java SDK 进行这些调用?有没有更快的方法可以让我使用 Camel 的底层 REST Component

这里的目标不仅仅是让集成部分正常工作。我还需要更多地了解 Camel 最佳实践并创建自己的 Components,因为随着我们将 Camel 集成到我们的环境中,这将成为更大的需求。

【问题讨论】:

  • Apache Camel 已经拥有自己的REST client implementation。所以看起来你只需要使用它,如果你真的有 3rd 方 RESTful API 文档。
  • 是的,我知道这一点。然而,正如我在问题中所说,真正的目标是学习开发自定义 Camel 组件的最佳方法。这种集成可能是一个 RESTful 服务,但其他的不是。
  • 您的主要问题是“完成此任务的最佳方法是什么”,而这个答案可能是重用现有组件 ;-) 如果您想学习如何创建组件 - 那么它是题外话SO - 您可能应该阅读“camel in action”,或源代码中的大型组件库

标签: java rest apache-camel


【解决方案1】:

我同意其他评论者的观点。使用现有的 REST 组件。这就是使用 REST/SOAP 的全部意义在于有一个与远程系统通信的标准。然后,您将更好地控制如何处理负载。作为文本 JSON/XML 或转换为 Java POJO。

在 2000-2005 年的 ESB v1 时代,风靡一时的是每个 API 都拥有组件——这最终成为维护的噩梦——保持轻量级,从长远来看你会更快乐 =)

【讨论】:

  • Box、PayPal、Amazon AWS 等。所有这些 RESTful 服务都有自定义组件,即使有 REST 组件。这是同样的想法。我们要调用的服务有足够的复杂性,我想创建自己的组件。
【解决方案2】:

如果您想连接到标准 REST API,为什么要创建自己的组件? Camel 已经为此提供了组件供您重用,而且这样做更好。只有在处理新数据格式、新系统或协议时才创建新组件。

【讨论】:

  • Box、PayPal、Amazon AWS 等。所有这些 RESTful 服务都有自定义组件,即使有 REST 组件。这是同样的想法。我们要调用的服务有足够的复杂性,我想创建自己的组件。
【解决方案3】:

聚会有点晚了,但我认为这里值得一提另一个答案(不久前我问自己同样的问题)。它可能对其他人有用。

我最近使用camel-api-component-maven-plugin 实现了一个new Camel FHIR Component,它在幕后使用了HAPI-FHIR sdk

我认为这是一个很棒的工具。它将生成将 3rd 方 SDK 与 Camel 集成的样板代码。您只需添加相关的 SDK 调用。它甚至为您生成测试类。它被其他组件使用,例如 Box、一些 Google 组件、AS2、Olingo 等等。该工具有助于在实施/测试的方式上保持这些一致性。

HTH

约翰。

【讨论】:

    猜你喜欢
    • 2019-06-28
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 2014-01-09
    • 2023-03-10
    相关资源
    最近更新 更多