Javascript 主干-内置REST功能
我对主干网内置的REST功能感到困惑。我的印象是,主干模型在Javascript 主干-内置REST功能,javascript,backbone.js,Javascript,Backbone.js,我对主干网内置的REST功能感到困惑。我的印象是,主干模型在model.save()上会自动将idAttribute标识的值附加到urlRoot的末尾。但是我在网上看到了很多例子,比如下面的例子,应用程序必须将id附加到url。为什么呢?哪一个更好 使用RequireJS的示例: define(function(require) { var Backbone = require('Backbone'); return Backbone.Model.exten
model.save()上会自动将idAttribute标识的值附加到urlRoot的末尾。但是我在网上看到了很多例子,比如下面的例子,应用程序必须将id附加到url。为什么呢?哪一个更好
使用RequireJS的示例:
define(function(require) {
var Backbone = require('Backbone');
return Backbone.Model.extend({
urlRoot: 'http://rest-service.guides.spring.io/greeting',
url: function() {
return this.urlRoot + '?name=' + this.id;
}
});
});
主干假设您在设计RESTAPI时遵循了一些常见的REST实践
例如,更新用户的API应公开为:
PUT /users/:id
而不是
PUT /users?id=:id
当然,在某些边缘情况下,您必须重写默认URL函数,但一般来说,保持原样意味着您在设计RESTAPI时遵循了最佳实践
当需要重写时,我可以想到的一种情况是,子资源由多个ID标识:
PUT /apps/:appId/schedules/:scheduleId
然后url
功能将是:
url: function () {
return this.urlRoot + '/' + this.appId + '/schedules/' + this.id
}
应用REST时,id通常是集合中包含的项的唯一标识符(用复数表示)。
url/greeting/id
对我来说似乎没有什么意义
通过查询字符串(问号后面)发送的参数用作当前查询的集合的过滤器