适用于Java的轻量级REST库

时间:2008-09-15 19:56:30

标签: java rest

我正在为我正在开发的Java Web应用程序寻找一个轻量级的REST。

我看过RESTlet(www.restlet.org)和Struts 2的REST插件,但我还没有下定决心。我倾向于RESTlet,因为它看起来更轻。

有没有人在没有任何框架或框架的情况下实现RESTful层?

由于新的网络层,您看到过任何性能问题?

REST的引入是否为您的项目增加了无法管理或不合理的复杂性? (有些复杂性是可以理解的,但我的意思是仅仅为了添加REST而过分夸大你的设计)

6 个答案:

答案 0 :(得分:20)

我是JAX-RS的忠实粉丝 - 我认为他们在该规范方面做得非常出色。我在许多项目中使用它,并且很高兴与之合作。

JAX-RS允许您使用POJO创建REST资源,其中简单的注释处理URI映射,HTTP方法和内容协商,所有这些都与依赖注入很好地集成。没有复杂的API需要学习;只需要核心REST概念(URI,标题/响应代码和内容协商)。从控制器的角度来看,FWIW JAX-RS非常Rails-ish

有许多JAX-RS实现 - 请参阅this thread for a discussion

我个人的建议是使用Jersey,因为它拥有最强大,最活跃的社区,在撰写本文时具有最佳功能(WADL支持,隐式视图,Spring集成,漂亮的REST客户端API) ;虽然如果您使用的是JBoss / SEAM,您可能会发现RESTeasy集成得更好。

答案 1 :(得分:8)

我是Restlet的忠实粉丝,但我通常使用它来实现主要角色是 RESTful Web服务的应用程序。听起来您正在寻找将RESTful API添加到现有应用程序。如果是这种情况,JAX-RS(或Enunciate)基于注释的方法可能更适合您的项目。

至于Restlet,我可以告诉你,我对开发者和社区印象非常深刻;他们非常积极,参与,反应迅速,致力于建立一个稳定,高效,可靠和有效的框架。我最喜欢的框架是它是REST范式的基础实现;因此,Restlet应用程序的外部API与内部实现之间不存在阻抗不匹配。我也非常喜欢它的灵活性 - 它可以在Java应用程序容器/服务器(如JBoss,Tomcat,Jetty等)内运行,也可以独立运行,带有嵌入式HTTP服务器库。

答案 2 :(得分:3)

好吧,我已经使用过Enunciate了。它使用简单的注释来提供REST和/或SOAP端点。

http://enunciate.codehaus.org

另外,Ryan Heaton也一直为事物提供一流的支持。

答案 3 :(得分:3)

您知道有一个新的JCP API用于访问RESTful服务,还有:

JAX-RS JCP311 https://jsr311.dev.java.net/

开源版本名为Project Jersey

答案 4 :(得分:1)

我正在为gliffy.com开发一个REST API,最后我们自己动手了。我们不想引入Struts 2,Spring或任何其他框架。我看了一下RESTLet,发现它令人难以置信的混乱和复杂。

Apache有一个JAX-RS规范的实现,但它没有最终确定,也有一些奇怪之处。我们暂时计划开源我们的解决方案,但这不是几个月。

不过,滚动你自己很容易。 Servlet规范为您提供了所需的一切,您可以通过Hibernate轻松连接到数据库(请参阅http://www.naildrivin5.com/daveblog5000/?p=39了解如何在不使用EJB3的情况下设置JPA)。

答案 5 :(得分:1)

我发现restlet是一个非常优雅的建筑。我在.net世界工作,所以它不适合我,但我能够按照相同的restlet基本原则构建自己的框架。 我发现将基于WCF合同的SOA应用程序转换为基于REST的应用程序已经大大简化了应用程序,