主干网-内置REST功能

Backbone - built-in REST capability

本文关键字:功能 REST 内置 主干网      更新时间:2023-09-26

我对Backbone内置的REST功能感到困惑。我的印象是,Backbone模型在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;
            }
        });
    });

Backbone假设您在设计REST API时遵循了一些常见的REST实践。

例如,更新用户的API应该公开为:

PUT /users/:id

而不是

PUT /users?id=:id

当然,当您必须重写默认的URL函数时,也有一些边缘情况,但一般来说,保持原样意味着您在设计REST API时遵循了最佳实践。

当需要重写时,我能想到的一种情况是,子资源由多个ID标识:

PUT /apps/:appId/schedules/:scheduleId

则CCD_ 2函数将为:

url: function () {
    return this.urlRoot + '/' + this.appId + '/schedules/' + this.id
}

应用REST时,id通常是集合所包含项目的唯一标识符(以复数表示)。url /greeting/id对我来说似乎没有多大意义。

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