J'essaie d'écrire un serveur personnalisé basé sur express.js pour une application Ember.js. Je m'entends assez bien mais je suis constamment en train d'essayer de deviner les réponses JSON qu'attend Ember Data à un moment donné.
Cette toute nouvelle documentation est un bon point de départ http://emberjs.com/guides/models/the-rest-adapter/ mais n'est pas assez complète.
Mon coup de poignard dans le noir m'a amené à comprendre (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 ??? ???
Quelqu'un peut-il m'aider à remplir certains de ces espaces?
Edit, la liste complète des réponses JSON attendues
Ces réponses ont été glanées à partir de ember-data REST tests unitaires de l'adaptateur et en observant le trafic réseau sur Exemple de l'application Ember Data .
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]}
Au lieu de poignarder dans le noir, jetez un œil à reste-adaptateur-test
Par exemple, pour répondre à votre question sur les données de réponse pour les mises à jour groupées, L738 décrit les données de réponse attendues:
ajaxHash.success({ people: [
{ id: 1, name: "Brohuda Brokatz" },
{ id: 2, name: "Brocarl Brolerche" }
]});
Recherchez actuellement les expressions ajaxResponse(
dans rest-adapter-test.js
source imbriquée dans test("create - a payload with a new ID and data applies the updates"
ressemblent à des blocs pour lire la réponse requise du serveur.