Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干-内置REST功能_Javascript_Backbone.js - Fatal编程技术网

Javascript 主干-内置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

我对主干网内置的REST功能感到困惑。我的印象是,主干模型在
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
对我来说似乎没有什么意义

通过查询字符串(问号后面)发送的参数用作当前查询的集合的过滤器