Backbone.save POST而不是PUT

Jan*_*ick 6 post put backbone.js

只是一个简短的问题:

拥有模型的新实例并发布model.save()URL设置为/api/store/category,Backbone发布POST.根据我的知识,它应该使用PUT,就像在"PUT或POST:故事的REST"博客文章中提到的那样.

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

nik*_*shr 13

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

save model.save([attributes],[options])
...
如果模型是new,则保存将是"创建"(HTTP POST),如果模型已存在于服务器上,则保存将是"更新" "(HTTP PUT).

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

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

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

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