Java中的REST

时间:2020-03-05 18:54:22  来源:igfitidea点击:

我正在为我正在开发的Java Web应用程序寻找REST的简化版本。

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

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

我们是否由于新的Web层而遇到任何性能问题?

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

解决方案

回答

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

http://enunciate.codehaus.org

另外,瑞安·希顿(Ryan Heaton)始终也为事物提供一流的支持。

回答

我正在为gliffy.com开发REST API,最终我们自己开发了自己的。我们不想引入Struts 2,Spring或者任何其他框架。我查看了RESTLet,发现它令人难以置信并且过于复杂。

Apache具有JAX-RS规范的实现,但尚未最终确定,并且还有些怪异。我们正计划开放我们的解决方案的源代码,但这还没有几个月。

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

回答

我发现restlet是一个非常优雅的体系结构。我在.net世界中工作,因此这不是我的选择,但是我能够遵循restlet的基本原理来构建自己的框架。
我发现将基于WCF合同的SOA应用程序转换为基于REST的应用程序已大大简化了该应用程序,

回答

我们知道有一个用于访问RESTful服务的新JCP API,并且:

Hyman斯RS JCP311
https://jsr311.dev.java.net/

开源版本称为Project Jersey

回答

我是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集成更好。

回答

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

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