15

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

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

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

由于新的 Web 层,您遇到过任何性能问题吗?

REST 的引入是否给您的项目增加了难以管理或不合理的复杂性?(一些复杂性是可以理解的,但我的意思只是为了添加 REST 而过度杀伤您的设计)

4

6 回答 6

19

我是 JAX-RS 的忠实粉丝——我认为他们在该规范方面做得很好。我在许多项目中使用它,与它一起工作很愉快。

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

那里有许多 JAX-RS 实现 - 请参阅此线程以进行讨论

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

于 2008-09-17T11:26:03.483 回答
8

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

As for Restlet, I can tell you that I've been very impressed with the developers and the community; they're very active, engaged, responsive, and committed to a stable, efficient, reliable, and effective framework. My single favorite aspect of the framework is that it is a ground-up implementation of the REST paradigm; therefore there is no impedance-mismatch between a Restlet app's external API and internal implementation. I also really like how flexible it is - it can run inside a Java application container/server such as JBoss, Tomcat, Jetty, etc, or standalone, with an embedded HTTP server library.

于 2008-09-18T20:03:02.843 回答
3

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

http://enunciate.codehaus.org

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

于 2008-09-15T19:59:51.923 回答
3

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

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

开源版本称为 Project Jersey

于 2008-09-16T18:25:49.457 回答
1

我正在为gliffy.com开发一个 REST API ,我们最终推出了自己的 API。我们不想引入 Struts 2、Spring 或任何其他框架。我查看了 RESTLet,发现它非常混乱且过于复杂。

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

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

于 2008-09-15T20:02:06.817 回答
1

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

于 2008-09-15T20:41:00.187 回答