【发布时间】:2010-08-18 00:01:22
【问题描述】:
我了解 RESTful 网站设计应该如何运作的大部分内容,但在实现博客时无法决定呈现表单以插入新博客文章的最佳方式。 example.com/posts/create 是否合理?这感觉就像“创建”并不平静,就像它将信息放入应该由 PUT/POST 简单表示的 URI 中。
其他人会怎么做?
【问题讨论】:
标签: web-services rest
我了解 RESTful 网站设计应该如何运作的大部分内容,但在实现博客时无法决定呈现表单以插入新博客文章的最佳方式。 example.com/posts/create 是否合理?这感觉就像“创建”并不平静,就像它将信息放入应该由 PUT/POST 简单表示的 URI 中。
其他人会怎么做?
【问题讨论】:
标签: web-services rest
查看Rails Routing 了解 Rails 对此的看法。
Verb URL Controller Action Used For
GET /photos/new Photos new return an HTML form for creating a new photo
POST /photos Photos create create a new photo
因此,在您的情况下,获取 /posts/new 以获取新的帖子表单,但 POST /posts 以创建新帖子。
重点是,您要发布一篇新的博客文章,但要做到这一点,您需要获取能够执行此操作的表单。在某种程度上,新的博客文章表单只是另一种(静态)资源。
【讨论】:
如果您不喜欢该 URL 的感觉,请将其更改为:
GET http://example.com/posts/createform
【讨论】:
create 更改为名词 createform。确实,我猜只是 /posts/form 也很有效。但请记住允许客户端在其他地方发现表单的 URI!
使用 POST 提交插入信息,然后让页面使用 URL 中的新 ID 重定向到。您不希望 URL 上有新信息,因为刷新 URL 的用户会发布两次。
【讨论】: