У меня есть API, который не возвращает данные JSON в формате, ожидаемом Ember-Data. Особенно при получении списка ресурсов против одного ресурса.
Например, GET /api/widgets/{id}
Должен возвращать модель одного виджета, которая может выглядеть следующим образом:
//app/models/widget.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
weight: DS.attr('number'),
color: DS.attr('string')
});
Принимая во внимание, что получение полного списка виджетов через GET /api/widgets/
возвращает модель, которая должна выглядеть следующим образом:
// app/models/widgetlist.js
import DS from 'ember-data';
export default DS.Model.extend({
total: 22,
widgets: DS.hasMany('widget')
});
(я думаю так должна выглядеть моя модель списка виджетов. По сути, это общее количество виджетов в системе и текущий набор виджетов с разбивкой по страницам)
Мне очень трудно понять, какая комбинация моделей, нестандартного адаптера и / или нестандартного сериализатора мне нужна, чтобы заставить это работать.
EDIT:
// Server responses examples
// GET api/widgets/77
{
"id":77,
"name":"Acoustic Twangdoodle",
"weight":3,
"color":"purple"
}
// GET api/widgets/
{
"total":22,
"widgets":[
{
"id":77,
"name":"Acoustic Twangdoodle",
"weight":3,
"color":"purple"
},
{
"id":88,
"name":"Electric Twangdoodle",
"weight":12,
"color":"salmon"
}
]
}