Apache Camel 最近发布了一个新版本 , 其中一些新功能由我的同事Claus Ibsen博客发布 。 您确实应该检查他的博客条目并深入研究更多细节,但是我希望尝试的功能之一是新的REST DSL 。

那么,这是什么新的DSL?

实际上,它是对Camel路由DSL的扩展,后者是一种功能强大的域语言,用于以声明方式描述集成流,并且有多种形式 。 这非常棒,并且是集成库之间的区别。 如果您还没有看到Camel的DSL,则应该检查一下。 我是否提到过骆驼的DSL很棒?

k ..回到这里的REST故事..

在2.14版之前,创建其余端点意味着要使用camel-cxfrs ,对于新用户而言,仅尝试公开一个简单的REST端点可能很难实现。 实际上,这是进行合同优先REST设计的一种非常有效的方法,但我将在下一篇博客文章中介绍。 但是, 在上一篇文章中,我确实深入研究了如何将骆驼cxfrs用于REST端点,以便您可以进行检查。

在2.14版本中,DSL进行了扩展,以使创建REST端点变得更加容易。 例如:

rest("/user").description("User rest service").consumes("application/json").produces("application/json").get("/{id}").description("Find user by id").outType(User.class).to("bean:userService?method=getUser(${header.id})").put().description("Updates or create a user").type(User.class).to("bean:userService?method=updateUser").get("/findAll").description("Find all users").outTypeList(User.class).to("bean:userService?method=listUsers");

在此示例中,我们可以看到我们使用DSL定义了REST端点,这是清晰,直观和直接的。

您所需要做的就是使用以下代码来设置REST引擎:

restConfiguration().component("jetty").bindingMode(RestBindingMode.json).dataFormatProperty("prettyPrint", "true").port(8080);

或者在您的Spring上下文XML中:

<camelContext>...<restConfiguration bindingMode="auto" component="jetty" port="8080"/>  ...
</camelContext>

最酷的部分是,您可以通过这种方法使用多个HTTP / servlet引擎,包括具有嵌入式码头( camel-jetty )或通过现有servlet容器( camel-servlet )的micrservices样式。 请参阅REST DSL文档 ,以获取可用于此DSL的完整HTTP / Servlet组件。

最后,有人可能会问,如何记录REST端点? 例如,WADL?
好吧,幸运的是,新的REST DSL与出色的Swagger库和REST文档引擎集成在一起了! 因此,您可以自动记录REST端点,并为您生成docs / interface / spec! 看一下随附的camel-swagger文档和camel-example-servlet-rest-tomcat示例,以了解更多信息。

试试看,让我们知道(骆驼邮件列表,评论,stackoverflow,不知何故!!!)它如何为您工作。

翻译自: https://www.javacodegeeks.com/2014/10/easy-rest-endpoints-with-apache-camel-2-14.html

使用Apache Camel 2.14的轻松REST端点相关推荐

  1. apache.camel_使用Apache Camel 2.14的轻松REST端点

    apache.camel Apache Camel 最近发布了一个新版本 , 其中一些新功能由我的同事Claus Ibsen博客发布 . 您确实应该检查他的博客条目并深入研究更多细节,但是我一直希望尝 ...

  2. Apache Camel 2.14中的更多指标

    Apache Camel 2.14将于本月晚些时候发布. 由于正在解决某些Apache基础结构问题,因此存在一些问题. 这篇博客文章讨论的是我们添加到此版本中的新功能之一. 感谢Lauri Kimme ...

  3. Apache Camel请向我解释这些端点选项的含义

    在即将发布的Apache Camel 2.15中,我们使Camel更智能. 现在,它可以充当老师,并向您说明其配置方式以及这些选项的含义. Camel可以做的第一课是告诉您如何配置所有端点以及这些选项 ...

  4. apache.camel_Apache Camel 2.14中的更多指标

    apache.camel Apache Camel 2.14将于本月晚些时候发布. 由于正在解决某些Apache基础结构问题,因此存在一些问题. 这篇博客文章讨论的是我们添加到此版本中的新功能之一. ...

  5. camel_Apache Camel 2.14中的更多指标

    camel Apache Camel 2.14将于本月晚些时候发布. 由于正在解决某些Apache基础结构问题,因此存在一些问题. 这篇博客文章讨论的是我们添加到此版本中的新功能之一. 感谢Lauri ...

  6. apache camel_带有调试器的Apache Camel Eclipse工具

    apache camel 大约2个月前, Lars Heineman在 JBoss工具堆栈中写了关于改进的Apache Camel Eclipse工具的博客. 在即将发布的版本中,他们将Camel调试 ...

  7. 带有调试器的Apache Camel Eclipse工具

    大约2个月前, Lars Heineman在 JBoss工具堆栈中的博客中介绍了改进的Apache Camel Eclipse工具. 在即将发布的版本中,他们将Camel调试器与本机Eclipse调试 ...

  8. Apache Camel 2.19发布–新增功能

    Apache Camel 2.19于2017年5月5日发布,大约在一段时间后,我做了一个小博客,介绍了该版本包含的值得注意的新功能和改进. 这是值得注意的新功能和改进的列表. 1. Spring Bo ...

  9. Apache Camel –从头开始开发应用程序(第1部分/第2部分)

    开始之前 前一段时间,我写了一篇关于Spring Integration的教程,以演示如何在受现实发票处理系统启发的示例应用程序中使用Spring Integration. 我对此非常满意,因此我决定 ...

最新文章

  1. 异步请求之XMLHttpRequest篇
  2. QQ使用了什么通讯协议?为什么要这样做?为什么采用 UDP 协议,而不采用 TCP 协议实现?
  3. 编码 data:text/html;c,iOS 用TFHpple抓取GB-2312编码的html页面,页面返回编码错误
  4. 502 Bad Gateway Registered endpoint failed to handle the request
  5. char与varchar区别(MYISAM)
  6. 面试官系统精讲Java源码及大厂真题 - 35 经验总结:各种锁在工作中使用场景和细节
  7. STM32-TFTLCD显示
  8. ES6入门---变量的解构赋值
  9. python怎样保存在桌面_python3应用windows api对后台程序窗口及桌面截图并保存的方法...
  10. 视频:Microsoft PDC 09,算法及数据结构内容及其他
  11. AMPL_网络项目问题
  12. 利用标准差剔除异常数据
  13. 最新的软著自助免费申请教程!
  14. Excel根据身份证号自动识别性别
  15. Windows11电脑丢失了数据该怎么恢复?
  16. Arcgis: 利用xls文件绘制地图+细节参数调整(新手小白一看就懂)
  17. 在基于Windows系统的PHP虚拟主机上实现域名的301永久重定向
  18. mysql 日期group_MySql 使用GROUP BY 按照日期分组统计
  19. sqlite程序实现
  20. live555 信令分发

热门文章

  1. 当当网头部和尾部——CSS源码
  2. spring data jpa是什么?
  3. mysql级联复制转换成一主两从_一主两从转级联复制
  4. linux-basic(10)vim程序编辑器
  5. java泛型程序设计——定义简单泛型类+泛型方法
  6. neo4j 迁移_在Kubernetes中迁移Neo4j图模式
  7. 阅读副本和Spring Data第2部分:配置基础项目
  8. aws 删除ec2实例_如何在AWS EC2实例上部署Spring Boot应用程序
  9. 困难是成功路上的垫脚石_Java是开发的垫脚石。 学习吧!
  10. java isempty_Optional.isEmpty()即将加入Java吗?