Описание
Сериализатор представляет собой реализацию абстрактного класса DS.Serializer.
Сериализаторы располагаются в папке serializers
и их имя соответствует имени модели.
В настоящее время в ember-flexberry-data определён базовый сериализатор, наследованнный от DS.RESTSerializer.
Типичный сериализатор представлен ниже.
Сериализатор содержит миксин DS.EmbeddedRecordsMixin.
”’'’primaryKey: ‘__PrimaryKey’’’’” - определяем, в каком поле хранится первичный ключ модели при взаимодействии с сервером.
”’'’attrs: { … }’’’” - описание всех ссылок на мастеров и детейлов (только первого уровня), которые присутствуют в модели.
”’'’ссылкаНаМастераИлиАгрегатор: { serialize: ‘odata-id’, deserialize: ‘records’ }’’’” - описание для ссылок на мастера (или агрегатора детейла). ссылкаНаМастераИлиАгрегатор
- это имя мастерового свойства в модели (или имя ссылки на агрегатор).
”’'’ссылкаНаДетейл: { serialize: false, deserialize: ‘records’ }’’’” - описание для ссылок детейлов. ссылкаНаДетейл
- это имя детейлового свойства в модели.
’'’odata-id’’’ - особый тип отношения для сериализаторов, обрабатываемый базовым сериализатором OData аддона ember-flexberry-data. Используется для передачи сведений о мастерах в правильном odata-формате:
'<ИмяСвязиДоМастера>@odata.bind': '<ТипМастера>s(<ИдентификаторМастера>')
Например, "'ReportsTo@odata.bind': 'Employees(502431BA-3B85-4A97-AF53-7AD193ED6AEC)'"
import DS from 'ember-data';
import ApplicationSerializer from './application';
export default ApplicationSerializer.extend({
attrs: {
ссылкаНаМастераИлиАгрегатор: { serialize: 'odata-id', deserialize: 'records' },
ссылкаНаДетейл: { serialize: false, deserialize: 'records' }
},
primaryKey: '__PrimaryKey'
});
Если ссылки на мастеров и детейлов отсутствуют, то сериализатор записывают как:
import DS from 'ember-data';
import ApplicationSerializer from './application';
export default ApplicationSerializer.extend({
attrs: {},
primaryKey: '__PrimaryKey'
});