Настройка RESTAdapter, чтобы не устанавливать расширение.json для запросов get / list
Я использую междоменный API REST. Я определил свой пользовательский адаптер REST для запуска моего API. Pb - удалить ".json", автоматически установленный ember-model.
Как настроить мой адаптер, чтобы избежать установки моей "функции замены" (url = url.replace ('. Json', '');)
App.Book.adapter = Ember.RESTAdapter.create({
ajaxSettings: function(url, method) {
var authorization= "Basic " + btoa("login" + ":" + "pwd");
url=url.replace('.json', '');
return {
url: url,
type: method,
dataType: "json",
headers: {
"Authorization": authorization
},
};
}
});
App.Certificate.url='http://mysite/api/v1/books';
1 ответ
Как настроить мой адаптер, чтобы избежать установки моей "функции замены" (url=url.replace('. Json', '');)
Так как ember-модель не предоставляет никаких опций конфигурации, чтобы изменить это поведение, IMHO, ваше решение, выполнив url = url.replace('.json', '');
не так уж и плохо
Другой возможный способ, которым я могу придумать, - это открыть RESTAdapter
и переопределить buildURL
функция не включать .json
,
Ember.RESTAdapter.reopen({
buildURL: function(klass, id) {
var urlRoot = Ember.get(klass, 'url');
if (!urlRoot) { throw new Error('Ember.RESTAdapter requires a `url` property to be specified'); }
if (!Ember.isEmpty(id)) {
return urlRoot + "/" + id;
} else {
return urlRoot;
}
}
});
Но это не тот шанс на будущее, если исходный код изменится, и вы захотите обновить библиотеку, вам пришлось изменить также и переопределение.
Надеюсь, поможет.