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]}
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" } ]});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With