RESTful URL 只是使用 RESTful 原则的 Web 服务的 URL。Google 可以比我在这里更好地解释这一点,但基本思想是将各种 REST“动词”(GET、POST、DELETE 等)集成到 API 中。例如,下面是一组 RESTful 动词 + 用于虚构用户 API 的 url:
GET /user - returns a list of users
POST /user - creates a new user
DELETE /user/5 - deletes the user with ID 5
PUT /user/5 - updates/edits the user with ID 5
如果您的服务器端设计相似,Backbone 会特别好用,但这不是必需的。
如果您的服务器端 API 不是 RESTful,您只需覆盖模型和集合上的某些方法(很可能destroy
是 、fetch
、save
、url
、parse
、sync
和toJSON
),以执行适合您服务器的任何操作。
例如,您可能希望覆盖url
模型的方法以使其返回服务器的(非 RESTful)URL:
url: function() {
return 'www.example.com/some/very/not/RESTful/' + this.id + '/URL/example';
}
或者,如果您的服务器返回带有“信封”的对象,例如:
{
type: 'envelope',
payload: {
type: 'user',
name: 'Bob',
id: 5,
}
}
您可以修改 parse 以将其删除:
parse: function(original) {
return original.payload;
}
至于“我如何引用我的 postgres 表”,如果您覆盖了适当的方法,然后在您的模型和集合上调用适当的 Backbone 操作方法 ( fetch
// save
) destroy
,Backbone 将向您在url
覆盖中定义的 URL 发出 AJAX 请求. 然后,您的服务器可以使用您想要解释该请求的任何语言并在您的 PostgreSQL 数据库上执行适当的操作。