6

只是一个简短的问题:

拥有一个模型的新实例并发出一个model.save()URL 设置为 的/api/store/category,Backbone 发出一个 POST。据我所知,它应该使用 PUT,就像在这篇“PUT 或 POST:故事的 REST”博文中提到的那样。

谁是对的?BB还是这篇文章的作者?

4

1 回答 1

13

根据Backbone 文档,保存新模型将导致 POST 请求,保存现有模型(具有 id)将发出 PUT 请求。

save model.save([attributes], [options])
...
如果模型是New,则保存将是“创建”(HTTP POST),如果模型已经存在于服务器上,则保存将是“更新” "(HTTP 放置)。

如果您想知道 Backbone是否应该使用 POST 进行创建,请检查

  1. REST 中的 PUT 与 POST
  2. 维基百科上的RESTful Web 服务

根据这些文章,我想说的是,在 Backbone 的上下文中,动词是正确使用的:

  • 保存新模型导致系统发生变化,添加了新的URL,动作不是幂等的,应该是POST,
  • 保存已知模型会替换给定 URL 处的资源,该操作是幂等的,它应该是 PUT。
于 2012-06-13T10:39:51.760 回答