RESTful GET / POST表单语义

时间:2012-08-31 03:00:07

标签: rest

当我从http://example.com/organization/获取时,我得到了一份组织清单。

当我从http://example.com/organization/xyz/获取时,我获得了组织xyz的记录。

当我将表单数据发布到http://example.com/organization/时,我创建了一个新组织。

我应该使用哪个网址来填写表单以通过POST http://example.com/organization/来创建新的组织?

查看How to do a RESTful request for an edit form?和其他来源,似乎我真的在寻找组织的表单资源 - 所以我应该在http://example.com/organization/form/和POST {{3}之类的地方获取该表单}} 如上所述。这似乎......不整洁。

更新

tuespetre的评论让我觉得最好的方法就是拥有一个表单资源。组织表格通过GET提供给/表格/组织/,填写并张贴到/ organization /。

2 个答案:

答案 0 :(得分:1)

在某种意义上,您所说的形式不是资源,而是用于收集用户输入以POST新资源的模板。

要做到这一点的一个非常'RESTful方式'就是利用一些Javascript在集合页面/organizations中“包含”该表单,或者作为隐藏的“向下滑动”表单或者可能是模式对话框按下某个号召性用语按钮时出现。这有两个原因:

  1. 您不必为表单使用一些任意URI(在您的域对象的意义上,它不是真正的资源),并且
  2. 'create'表单用于POST到集合,因此它与该集合密切相关,因此在集合中与集合无关。
  3. 当然,你会发现很多这方面的意见,但我宁愿没有违反既定模式的任意URI(也就是说,你没有得到一个id为'new'的组织,那么为什么会出现这种不一致?)

答案 1 :(得分:0)

如果您正在尝试实施它,我已经看到它以不同的方式完成,我认为没有规则(但是您可以遵循或不遵循不同的模式/方法)。 我会把它http://example.com/organization/new/