Удалить корневой элемент JSON для операций POST/PUT в Ember Data
Я использую веб-службу, которая в глаголах POST/PUT ожидает JSON:
{
"id":"CACTU",
"companyName": "Cactus Comidas para llevar",
"contactName": "Patricio Simpson",
"contactTitle": "Sales Agent",
"address": "Cerrito 333",
"city": "Buenos Aires",
"postalCode": "1010",
"country": "Argentina",
"phone": "(1) 135-5555",
"fax": "(1) 135-4892"
}
Но Ember Data отправляет JSON следующим образом:
{
"customer":
{
"id":"CACTU",
"companyName": "Cactus Comidas para llevar",
"contactName": "Patricio Simpson",
"contactTitle": "Sales Agent",
"address": "Cerrito 333",
"city": "Buenos Aires",
"postalCode": "1010",
"country": "Argentina",
"phone": "(1) 135-5555",
"fax": "(1) 135-4892"
}
}
Как я могу удалить корневой элемент "клиент" при отправке операций POST/PUT?
Ответы
Ответ 1
Вы хотите переопределить один из методов сериализации, я думаю, что serializeIntoHash может работать:
App.CustomerSerializer = DS.RESTSerializer.extend({
serializeIntoHash: function(hash, type, record, options) {
Ember.merge(hash, this.serialize(record, options));
}
});
Это вместо обычного serializeIntoHash, который выглядит следующим образом:
serializeIntoHash: function(hash, type, record, options) {
hash[type.typeKey] = this.serialize(record, options);
}
Дополнительную документацию можно найти здесь:
https://github.com/emberjs/data/blob/v2.1.0/packages/ember-data/lib/serializers/rest-serializer.js#L595