我是RESTful Web服务的新手。我有以下两个问题:
GET,POST,DELETE,PUT,TRACE,HEAD,OPTIONS,Http中唯一可以用于RESTful Web服务的动词吗?
如何创建和使用自定义动词?
我正在使用Java和Jersey来创建我的RESTful Web服务。
答案 0 :(得分:3)
问题1的答案是肯定的,因为它们受到HTTP规范的限制。但是,实际上,大多数REST应用程序仅使用GET和POST,因为这些应用程序受到所有Internet基础结构的最广泛支持。然后问题二的答案是否定的,你不能创建一个自定义动词。
在使用HTTP谓词时必须考虑的事情是GET应该没有副作用,因为客户端可以随时重新发送GET(如果检测到通信失败)。然而,客户端最多可以发送一次POST,因此这应该用于导致无法重复的更改的任何内容(如插入)。
通常你会在你的应用程序中定义你想要的“动词”作为URL的一部分,而不是HTTP动词。
答案 1 :(得分:0)
那么如何仅用7个动词提供10个动作呢?
Web服务背后的理念是关注对象,而不是动词。
您的操作“创建”(“POST”),“检索”(“GET”),“更新”(“PUT”)或“删除”(“删除”)对象
每个动作都不是单独的动词吗?
没有。您可以拥有所需的所有对象。您只需要四个动词来创建,查找,更改和删除对象。
或者我错了,可以使用条件语在单个动词下提供多个动作?
没有。您可以创建一个创建(“POST”)请求,该请求又可以创建许多单个对象。
一般来说,其他人如何设计他们的应用程序,即使他们需要提供100种不同的动作,他们也不需要额外的动词?
您专注于对象。创建,检索,更新和删除对象。