开始使用 Apache Camel 的 REST 服务

REST 服务可以用于数据访问 API、将信息从设备发送到云端、监控等等。
320 位读者喜欢这篇文章。
Databases as a service

Jason Baker。CC BY-SA 4.0。

随着对灵活 API 和微服务的需求增长,REST 服务正成为连接现代系统与云端以及彼此之间日益流行的架构风格。借助 Apache Camel,您可以使用 REST 领域特定语言 (DSL) 更轻松快捷地编写 REST 服务。

女性计算大会 Grace Hopper Celebration of Women in Computing(2018 年 9 月 26 日至 28 日,休斯顿)的海报会议期间,我们将引导观众了解如何使用 REST DSL 开发他们的第一个 Camel 路由。

Apache Camel 是领先的开源集成框架。设计模式是在开发中常用的解决方案,已被证明可以有效地解决特定问题。Camel 是 企业集成模式 (EIP) 的基于 Java 的实现,企业集成模式是为常见的系统连接和数据交换问题建立的设计模式和集成解决方案。

我们已经看到 REST 服务用于数据访问 API、将信息从设备发送到云端、监控,甚至在信用卡公司迁移账户。Camel REST DSL 允许使用 Restlet、Servlet、Jetty 和各种其他支持 HTTP 的组件来创建 REST 服务以进行实施。使用 REST DSL 可以比以往更快更轻松地创建 REST 服务。

开始入门

我们认为,开始使用 Camel Rest DSL 最快捷的方法是使用 Spring Boot。Spring Boot 为 Apache Camel 提供自动配置,以快速创建独立应用程序。

要在 Spring Boot 应用程序中启用 Apache Camel,我们需要 camel-spring-boot-starter 依赖项。在 Maven 中,这将是

<dependency>
   <groupId>org.apache.camel</groupId>   
   <artifactId>camel-spring-boot-starter</artifactId>
</dependency>

接下来,与所有 Spring Boot 应用程序一样,您需要设置一个类来启动应用程序。

@SpringBootApplication
@Configuration
@ComponentScan("com.simple.camel.project")
public class MySimpleCamelApplication {
  /**
  * A main method to start this application.
  **/
  public static void main(String[] args) {
    SpringApplication.run(MySimpleCamelApplication.class, args);
  }
  /** 
  * from camel 2.21.0 on this ServletRegistrationBean is not required 
  * and the path defaults to /camel
  **/
  @Bean
  public ServletRegistrationBean camelServletRegistrationBean() {
    ServletRegistrationBean registration = new ServletRegistrationBean(new CamelHttpTransportServlet(), "/camel/*");
    registration.setName("CamelServlet");
    return registration;
  }
 }

Camel 的主要功能是路由引擎。Camel 有两种定义路由规则的主要方法:Java DSL 和 XML。我们将专注于基于 Java 的 DSL。您可以通过扩展 Camel RouteBuilder 类并实现 configure 方法来编写您的 Camel REST DSL 路由,如下所示

@Component
public class MySimpleCamelRouter extends RouteBuilder {
  @Override
  public void configure() throws Exception {
    restConfiguration()
      .component("servlet")
      .bindingMode(RestBindingMode.json);

    rest().get("/hello")
      .to("direct:hello");
 
    from("direct:hello")
      .log(LoggingLevel.INFO, "Hello World")
      .transform().simple("Hello World");
   }
}

现在,您可以使用 mvn spring-boot:run 运行您的示例,并在 http://localhost:8080/camel/hello 访问您的新 REST API。从 Web 浏览器测试 REST 服务很容易,尤其是在测试 GET 服务时,因为可以通过地址栏中的 URL 访问这些服务。POST、PUT 和 DELETE 则困难得多。您可以安装提供 REST 客户端(例如 Postman)的第三方插件来尝试其他 REST 动词。

点击此处查看更深入的实验和示例,了解如何使用 Camel 创建 Rest API、将其部署到 OpenShift 并使用 3Scale 进行管理。

了解更多

我们在 女性计算大会 Grace Hopper Celebration of Women in Computing 上的演讲将是 9 月 27 日上午 11:30 至下午 2:00 海报会议 3 的一部分。它将是技术性的——虽然我们希望我们的会议适用于初学者,但一些 Java 和/或集成方面的先验知识会有所帮助。

Grace Hopper 是与科技领域的女性建立联系、向他人学习以及体验整个科技领域女性社区的绝佳机会。这是 Mary 第二年参加 Grace Hopper 大会并进行演讲,也是 Krystal 第一年进行演讲。欢迎在海报研讨会期间来访我们!

标签
User profile image.
Mary Cochran 是 Red Hat 的中间件解决方案架构师。她拥有丰富的动手开发经验和各种集成产品的经验。她是 Apache Camel 的贡献者,也是一位经常撰写技术博客的博主。此外,Mary 很高兴能在许多会议上发表演讲,从 Red Hat Summit 到 API World 再到女性计算大会 Grace Hopper Celebration of Women in computing。
User profile image.
Krystal Ying 在牙买加长大,从南佛罗里达州移植到辛辛那提,并且是前 EWF INI 奖学金获得者。她目前是 Red Hat 的中间件顾问。在加入 Red Hat 之前,她曾在 Lexmark International, Inc. 担任软件工程师。

2 条评论

请问您能否也阐明如何使用 Apache camel 的 security Oauth2 来保护路由端点。
谢谢

© . All rights reserved.