现在,Ember Data RESTAdapter正在进行此调用:
GET /workshops
我想打这个电话:
POST /scripts/server/api_call.php
{
"http_verb": "GET",
"endpoint": "special_namespace/workshops",
"data": {}
}
我在api_call.php脚本中执行会话管理,授权和OAuth签名之类的操作,这会生成实际的RESTful请求并返回结果。
扩展RESTAdapter以执行此操作的步骤是什么?
答案 0 :(得分:0)
我认为您必须覆盖serialize和buildURL方法。您也可以直接覆盖find呼叫并绕过所有不必要的Ember-Data呼叫。
但在我看来,RESTAdapter
现在非常复杂。鉴于您的API如此不同,我认为您最好从头开始编写自己的适配器。我的自定义REST适配器大约有100行,其中20个只是$.ajax
个选项。例如,您的find
电话可以像以下一样简单:
find: function(store, type, id) {
return new Ember.RSVP.Promise(function(resolve) {
var data = {
http_verb: 'GET',
endpoint: 'special_namespace/' + type.typeKey.pluralize(),
data: {}
};
$.post('/scripts/server/api_call.php', data, function(response) {
resolve(response);
});
});
}