关于RESTful Web服务的2个问题

时间:2011-12-28 19:52:03

标签: java rest service web

我是RESTful Web服务的新手。我有以下两个问题:

  1. GET,POST,DELETE,PUT,TRACE,HEAD,OPTIONS,Http中唯一可以用于RESTful Web服务的动词吗?

  2. 如何创建和使用自定义动词?

  3. 我正在使用Java和Jersey来创建我的RESTful Web服务。

2 个答案:

答案 0 :(得分:3)

问题1的答案是肯定的,因为它们受到HTTP规范的限制。但是,实际上,大多数REST应用程序仅使用GET和POST,因为这些应用程序受到所有Internet基础结构的最广泛支持。然后问题二的答案是否定的,你不能创建一个自定义动词。

在使用HTTP谓词时必须考虑的事情是GET应该没有副作用,因为客户端可以随时重新发送GET(如果检测到通信失败)。然而,客户端最多可以发送一次POST,因此这应该用于导致无法重复的更改的任何内容(如插入)。

通常你会在你的应用程序中定义你想要的“动词”作为URL的一部分,而不是HTTP动词。

答案 1 :(得分:0)

  

那么如何仅用7个动词提供10个动作呢?

Web服务背后的理念是关注对象,而不是动词。

您的操作“创建”(“POST”),“检索”(“GET”),“更新”(“PUT”)或“删除”(“删除”)对象

  

每个动作都不是单独的动词吗?

没有。您可以拥有所需的所有对象。您只需要四个动词来创建,查找,更改和删除对象。

  

或者我错了,可以使用条件语在单个动词下提供多个动作?

没有。您可以创建一个创建(“POST”)请求,该请求又可以创建许多单个对象。

  

一般来说,其他人如何设计他们的应用程序,即使他们需要提供100种不同的动作,他们也不需要额外的动词?

您专注于对象。创建,检索,更新和删除对象。