Backbone and PHP API


Backbone and PHP API

关于在骨干客户端后面实现PHP api,我有几个问题。

我正在编写的PHP api是RESTful的,因此可以处理GETPUTPOSTDELETE请求。

然而,API的使用量已经大幅增长,因此我们希望简化请求。

我们可以收集项目,通过在客户端进行以下操作,

var projects = new App.Collections.Projects();
projects.fetch({ reset: true });

在这一点上值得注意的是,一个项目可以具有以下四种状态之一:已存档、挂起、活动、已完成。

这触发了一个GET请求http://app.com/projects,它为一个用户返回所有项目——我们正在使用的测试用户返回1200个项目(每个项目都是相当大的数据量)。这导致PHP内存不足。

我们想要的是简化请求,所以它不是在一个块中请求数据,而是在4次执行中请求数据。

即获取所有待处理的项目-然后获取所有已完成的项目等

我们必须首先为每个项目状态创建一个集合,然后为每个状态运行一个提取,然后将结果合并到一个集合中,这似乎是一个明智的选择吗?

它是违背REST思想还是使用主干模型和集合?

有多种方法可以实现这一点。我现在想到的是修改服务器以处理查询参数status,然后在获取集合时传递status

var projects = new App.Collections.Projects();
projects.fetch({
  reset: true,
  data:{ status : 'ACTIVE'} 
  }).done(function(){
    projects.fetch({
      data : { status: 'ARCHIVED'},
      remove:false
      }).done(function(){
          projects.fetch({
            remove:false,
            data : {status:'PENDING'}
          });
      })
});

将查询参数传递到REST后端是非常好的,这并不反对。

参考文献:

http://backbonejs.org/#Collection-提取

https://stackoverflow.com/a/15996003/566092