我有一个无法更改的现有RESTful API。 现在,我正在开发webclient。
我想使用像backbone.js这样的库(第一次)。
以下是现有API的设计
1。)GET /persons
- 返回整个人员集合
2。)GET /persons?p1=a&p2=b
(例如) - 返回与查询参数指定的条件匹配的完整集合的子集
3。)GET /persons/[id]
- 按身份
4。)POST /persons
- 修改集合(例如创建新人)并返回特定结果
#1(和#2)的问题:输出格式如下:{size: 1, persons: [{'id': 1, 'firstname': 'foo', 'lastname': 'bar'}]}
#2的问题:如何将这样的请求映射到backbone.js?
有什么建议吗?
答案 0 :(得分:3)
对于#1,您将覆盖parse
。例如,在您的Persons集合中,您将使用以下方法:
parse: function(response) {
return response.persons;
}
你基本上是在指示集合中可以找到模型的属性(在我们的例子中是“人”)。
对于#2,(如前所述),您似乎需要更新sync
。亨特在他的回答中提供了一个很好的联系,应该真的很有帮助。
答案 1 :(得分:2)
对于不遵循主干精确结构的API,您通常最终会覆盖主干中fetch
parse
和sync
的某些组合。 Backbone的设计使得覆盖这些东西变得容易,因为这是一个共同的需求: