Я использую второе хранилище данных с моим приложением Ember, чтобы я мог общаться с отдельным внешним API. У меня нет контроля над этим API.
С помощью DS.JSONSerializer
я могу добавить некоторые недостающие свойства, такие как id
:
normalizeResponse(store, primaryModelClass, payload, id, requestType) {
if (requestType == 'query') {
payload.forEach(function(el, index) {
payload[index].id = index
})
}
Теперь я могу сделать несколько разных трюков для каждого отдельного requestType
. Но каждый ответ анализируется. Теперь иногда ответ на один запрос нужно анализировать по-разному.
Итак, я пытаюсь изменить функциональность normalizeResponse
для каждого другого пути запроса (сопоставленного с поддельной моделью с использованием pathForType
в адаптере для этого магазина ). Но аргумент store
всегда одинаков (очевидно), а аргумент promaryModelClass
всегда «неизвестный миксин» - не уверен, может ли это помочь.
Как узнать, какая модель была запрошена? С этой информацией я мог бы сделать switch()
в normalizeResponse
.
Есть ли другой способ достижения моей цели, который не требует от меня создания отдельного адаптера для каждой траектории / модели?
Доступно более десятка функций нормализации . Что-то должно работать для того, чего я пытаюсь достичь.