2016-05-26 1 views
0

Я немного смущен и просто нуждаюсь в некоторой ясности: Должен ли я реализовывать пользовательский адаптер или собственный сериализатор?данные ember с настройкой для использования с сервисом non-JSONAPI

Мне нужно мое приложение ember, чтобы поговорить с бэкэндом REST/json.

Я хочу, чтобы мой уголек приложение, чтобы выставить ресурс, как:

GET/Места /: идентификатор

Но хозяин он соединяется имеет ресурс, расположенный по адресу:

GET http://server/api/location/:id

Полезная нагрузка с сервера:

{ 
    "id": "7ff3269e-d16c-4cc4-954d-aef8e662e0f6", 
    "geo": { 
    "latitude": 0, 
    "longitude": 0 
    }, 
    "typedAddress": { 
    "addressType": "US", 
    "countryCode": "US", 
    "name": "string", 
    "address1": "string", 
    "address2": "string", 
    "address3": "string", 
    "postalCode": "string" 
    }, 
    "customDescription": "string", 
    "timezone": "string" 
} 

Моя модель в уголек для этого:

export default Model.extend({ 
    latitude: attr('number'), 
    longitude: attr('number'), 
    addressType: attr('string'), 
    countryCode: attr('string'), 
    address1: attr('string'), 
    address2: attr('string'), 
    address2: attr('string'), 
    city: attr('string'), 
    state: attr('string'), 
    briefPostalCode: attr('string'), 
    postalCode: attr('string'), 
    timezone: attr('string') 
}); 

ответ

4

Вам просто нужно использовать RESTAdapter и написать свой собственный Serializer.

Предположим, что ваш тип модели - «местоположение». У вас был бы app/serializers/location.js вот так:

export default DS.RESTSerializer.extend({ 
    normalizeResponse(store, primaryModelClass, payload, id, requestType) { 
     let data= { 
      locations: [{ 
       id: payload.id, 
       latitude: payload.geo.latitude, 
       // etc. for all your properties 
      }] 
     }; 
     return this._super(store, primaryModelClass, data, id, requestType); 
    } 
}); 
+0

Я получил этот совет от друга тоже всего несколько минут назад. Я собираюсь пойти с ним. Спасибо –

+0

Следующий комментарий: Я заметил, что у вас есть места как [], хотя есть только один. Является ли предположение, что он МОЖЕТ быть массивом? –

+0

Да, он будет работать с единственным или множественным числом для названия модели. Мне легче всего всегда принимать массив. –

Смежные вопросы