WEB开发网
开发学院软件开发Java 精通 Grails: RESTful Grails 阅读

精通 Grails: RESTful Grails

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 面向资源的 Web 服务POST 与 PUT在 REST 社区存在着有关 POST 和 PUT 在插入新资源方面所起的作用的争议,在 HTTP 1.1 的原始的 RFC(Fielding 是主要作者)中对 PUT 的定义称:如果不存在资源的话,精通 Grails: RESTful Grails(

面向资源的 Web 服务

POST 与 PUT

在 REST 社区存在着有关 POST 和 PUT 在插入新资源方面所起的作用的争议。在 HTTP 1.1 的原始的 RFC(Fielding 是主要作者)中对 PUT 的定义称:如果不存在资源的话,服务器可以创建资源。而如果已经存在资源的话,那么 “……封装的实体必须被当作是对驻留在初始服务器上的实体修改后的版本”。因此如果不存在资源的话,PUT 就等于 INSERT。如果存在资源的话,PUT 就等于 UPDATE。 如果按如下的方式定义 POST 的话,事情就复杂了:

“POST 旨在用一个统一的方法来涵盖以下所有功能:

注释现有资源;

将一则消息发布到告示板、新闻组、邮件列表或者类似文章上;

将诸如表格提交结果这样的数据块提供给数据处理进程;

通过追加操作扩展数据库。”

“注释现有资源” 似乎暗指 UPDATE,而 “将一则消息发布到告示板”、“扩展数据库” 似乎暗指 INSERT。

由于所有的浏览器在提交 HTML 表单数据时都不支持 PUT 方法(它们只支持 GET 和 POST),所以很难确定在哪种情况下使用哪种方法最为明智。

Atom 发布协议(Atom Publishing Protocol)是一个遵循 RESTful 原则的流行的聚合格式。Atom 的 RFC 作者试图给 POST 与 PUT 之间的争议做个了结:

“Atom Publishing Protocol 对如下的 Member Resource 使用 HTTP 方法:

GET 用于检索已知的 Resource 表示。

POST 用于创建新的、动态命名的 Resource……

PUT 用于编辑已知 Resource。不用它来创建 Resource。

DELETE 用于删除已知 Resource。”

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:精通 Grails RESTful

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接