user3569639
user3569639

Reputation: 51

GET unconventional JSON with Ember-data

I am working with Ember 1.5.1 and Ember-data 1.0 beta and I am using the DS.RESTADAPTER CLASS. I have two models, let say Post and User. The server replies at a GET request with the following JSON

{
  data: [ .... ]
}

data is an array of users or posts depending on the request.

The RestAdapter is designed around the idea that the JSON exchanged with the server should be conventional, and it expects the JSON returned from your server should look like this

{
  posts: [ .... ]
}

or

{
  users: [ .... ]
}

depending on the request.

How to customize ember-data to handle such situation?

Upvotes: 1

Views: 183

Answers (1)

user3569639
user3569639

Reputation: 51

I was able to handle the situation described on the above question by means of a customization of the extractArray method

// override extractArray method 
App.PostSerializer = DS.RESTSerializer.extend({
  extractArray: function(store, type, payload, id, requestType) {
    var myposts = payload.data;
    var newpayload = { posts: myposts };
    return this._super(store, type, newpayload, id, requestType);
  }
});

The following resources have been very helpful:

https://github.com/emberjs/data/blob/master/TRANSITION.md#rest-adapter-and-serializer-configuration http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_extractArray

Upvotes: 1

Related Questions