具有多个更新path的主干用户模型
我在Backbone中构build了一个简单的用户模型
define([ 'underscore', 'backbone' ], function(_, Backbone) { var UserModel = Backbone.Model.extend({ urlRoot: '/api/user', idAttribute: '_id', defaults: { userName: '', password: '' personalDetails: { title: '', name: { firstName: '', lastName: '' }, gender: '', dob: '' } } }); return UserModel; });
在模型上调用save()
会向/api/user/:id
发出PUT请求,这很好。
但是,在前端我想要3种forms – updatePersonalDetails
, updateUserName
, updatePassword
。
在我目前的实现中,这些将全部使用相同的模型,并且全部使用save()
到相同的endpoint /api/user/:id
。 我的问题是,我不知道用户张贴的forms。
这个问题的最佳解决scheme是什么,同时还符合RESTful标准? 有3个独立的模型 – UserDetailsModel
, UserPasswordModel
等? 或者只是在整个模型上进行批量更新,无论用户发布的是哪种forms。
关于模型分离与模型BULK在问题评论中已经讨论过,我没有在那里添加。
关于您需要了解UPDATE请求表单源,您可以使用查询string参数:
只需POST / api / user / 1?form = my_special_form
在主干你只需要保存模型与url选项
model.save({}, { url: model.url() + "?form=my_special_form" });