| Extends: | Ember.Object |
|---|---|
| Defined in: | addon/serializer.js:7 |
| Module: | ember-data |
Defined in addon/serializer.js:129
The normalize method is used to convert a payload received from your external data source into the normalized form store.push() expects. You should override this method, munge the hash and return the normalized payload.
Example:
Serializer.extend({
normalize(modelClass, resourceHash) {
var data = {
id: resourceHash.id,
type: modelClass.modelName,
attributes: resourceHash
};
return { data: data };
}
}) Defined in addon/serializer.js:51
The normalizeResponse method is used to normalize a payload from the server to a JSON-API Document.
http://jsonapi.org/format/#document-structure
Example:
Serializer.extend({
normalizeResponse(store, primaryModelClass, payload, id, requestType) {
if (requestType === 'findRecord') {
return this.normalize(primaryModelClass, payload);
} else {
return payload.reduce(function(documentHash, item) {
let { data, included } = this.normalize(primaryModelClass, item);
documentHash.included.push(...included);
documentHash.data.push(data);
return documentHash;
}, { data: [], included: [] })
}
}
}); Defined in addon/serializer.js:87
The serialize method is used when a record is saved in order to convert the record into the form that your external data source expects.
serialize takes an optional options hash with a single option:
includeId: If this is true, serialize should include the ID in the serialized object it builds.Example:
Serializer.extend({
serialize(snapshot, options) {
var json = {
id: snapshot.id
};
snapshot.eachAttribute((key, attribute) => {
json[key] = snapshot.attr(key);
});
snapshot.eachRelationship((key, relationship) => {
if (relationship.kind === 'belongsTo') {
json[key] = snapshot.belongsTo(key, { id: true });
} else if (relationship.kind === 'hasMany') {
json[key] = snapshot.hasMany(key, { ids: true });
}
});
return json;
},
});
© 2017 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://emberjs.com/api/ember-data/2.14/classes/DS.Serializer/methods