如何在Web应用程序中实现REST?

6

我想知道如何在我的Web应用程序中实现REST。我想创建一个基于此服务的Web应用程序,但我不知道该怎么做。目前,我正在使用J2EE和Tomcat。这些技术需要考虑哪些事情?

编辑: 对不起,我的意思是RESTful服务。

5个回答

12

REST不是具体的接口或技术,而是一种风格。最好的例子就是Web本身——您的浏览器向Web服务器发送HTTP请求,服务器响应一个Web页面。

在这个上下文中,“Representational State Transfer”的意思是:表示是Web页面,状态是其中包含的信息。我们可以通过切换为提供XML而不是HTML来更改表示,但信息将保持不变。

在RESTful服务中,您使用这种风格来发送数据对象——状态从服务器传输到您,然后再次发送新的状态回来。

因此,在某种程度上,如果您将服务器页面作为资源放置,Tomcat已经为您执行了REST:例如,http://carsales.com/cars/porsche2149 可以成为您的汽车资源,您可以使用HTTP POST或PUT来更改其中的详细信息。

REST的标志是使用URI来表示资源(如上所述),使用JSON或XML作为交换媒介(尽管AHAH和其他格式也被使用),并且争论如何删除集合。

首先,确定您的资源将是什么,并组织您的URI系统来适应它(使用URL重写等)。然后确定要使用的表示形式。最后,编写后端以处理传递状态表示并更新数据库。


+1 对于保时捷的例子。虽然现在已经过去了,但仍然值得一提。 - zmilojko

1

我没有使用过CXF的jax-rs,但是Restlet对我来说很好用。它可以以简单明了的方式实现RESTful服务和客户端。在编程方面,它对我在DekiWiki的REST服务接口上编程帮助很大。有一本O'Reilly的书叫做“RESTful Web Service”,提供了一个不错的介绍。它还有一个关于Restlet的短小章节。


0

这只是一个简短的回答,但如果你想要一个框架/ API 来帮助,这里有两个选择:

Restlet

CXF 的 jax-rs


0

我们还在使用Restlet和JAX-RS。

如果你要使用JAX-RS(Java API for RESTful Web Services),那么这个文档可能会有用(虽然它是JBoss RESTEasy开发的参考指南)。

我还推荐REST测试客户端


0

RESTful Web Services 是一本可以帮助你的书籍。它描述了 RESTful Web Services 背后的动机,并给出了有关如何设计服务的说明。然后,你可以使用框架或普通的 servlets 进行实现。

作为已经提到的实现方法的替代方案,我想添加 Spring MVC。虽然已经可以创建RESTful应用程序 ,但是在 Spring 3.0 中会增加更直接的支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接