Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the complete list of expected JSON responses for DS.RESTAdapter?

I am attempting to write a custom express.js based server for an Ember.js app. I am getting along fairly well but I'm constantly getting stuck trying to guess what JSON responses Ember Data is expecting at a given moment.

This brand new documentation is a great start http://emberjs.com/guides/models/the-rest-adapter/ but not complete enough.

My stabbing in the dark has lead me to understand (Ember pre4, Ember Data 11):

Context                                Server URL          Method     Req. Data                  Resp. Data ~~~~~~~                                ~~~~~~~~~~          ~~~~~~     ~~~~~~~~~                  ~~~~~~~~~~ Getting a list of all users            /users              GET                                   {"users":[{...},{...}]} Getting a particular user              /users/123          GET                                   {"user":{...}} Creating a user                        /users              POST       {"user":{...}}             ??? Updating a user                        /users/123          PUT        {"user":{...}}             ??? Deleting a user                        /users/123          DELETE     ???                        ???  Creating a user (bulkUpdate)           /users              POST       {"users":[{...},{...}]}    ??? Updating a user (bulkUpdate)           /users/bulk         PUT        {"users":[{...},{...}]}    ??? Deleting a user (bulkUpdate)           /users/123          DELETE     ???                        ??? 

Can someone help me fill in some of these blanks?

Edit, the complete list of expected JSON responses

These responses were gleaned from the ember-data REST adapter unit tests and by watching the network traffic on the Example Ember Data app.

Context                                Server URL          Method     Req. Data                  Resp. Data ~~~~~~~                                ~~~~~~~~~~          ~~~~~~     ~~~~~~~~~                  ~~~~~~~~~~ Getting a list of all users            /users              GET                                   {"users":[{...},{...}]} Getting a particular user              /users/123          GET                                   {"user":{...}} Creating a user                        /users              POST       {"user":{...}}             {"user":{...}} Updating a user                        /users/123          PUT        {"user":{...}}             {"user":{...}} Deleting a user                        /users/123          DELETE     N/A                        null  Creating a user (bulkCommit)           /users              POST       {"users":[{...},{...}]}    {"users":[{...},{...}]} Updating a user (bulkCommit)           /users/bulk         PUT        {"users":[{...},{...}]}    {"users":[{...},{...}]} Deleting a user (bulkCommit)           /users/bulk         DELETE     {"users":[1,2]}            {"users":[1,2]} 
like image 296
James Andres Avatar asked Feb 17 '13 15:02

James Andres


1 Answers

Instead of stabbing in the dark, have a look at rest-adapter-test

For example, to fill in your question on response data for bulk updates, L738 describes the expected response data:

ajaxHash.success({ people: [   { id: 1, name: "Brohuda Brokatz" },   { id: 2, name: "Brocarl Brolerche" } ]}); 
like image 106
Mike Grassotti Avatar answered Sep 20 '22 15:09

Mike Grassotti