Backbone.save POST而不是PUT

时间:2012-06-13 10:34:25

标签: post backbone.js put

只是一个简短的问题:

拥有模型的新实例并发布model.save()并将URL设置为/api/store/category,Backbone会发出POST。根据我的知识,它应该使用PUT,就像这篇"PUT or POST: The REST of the Story"博客文章中提到的那样。

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

1 个答案:

答案 0 :(得分:13)

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

  

保存 model.save([attributes],[options])
  ...
  如果模型是New,则保存将是“create”(HTTP POST),如果模型已经存在的话   存在于服务器上,保存将是“更新”(HTTP PUT)。

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

  1. PUT vs POST in REST
  2. 维基百科上的
  3. RESTful web services
  4. 根据这些文章,我会说,在Backbone的上下文中,动词被正确使用:

    • 保存新模型会导致系统发生变化,添加新的URL,动作不是幂等的,应该是POST,
    • 保存已知模型会替换给定网址的资源,该操作是幂等的,它应该是PUT。