Dire che ho il seguente modello brace-dati:azioni non CRUD con brace-dati
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
starred: DS.attr('boolean')
});
Questo comunica con un'applicazione Rails con il seguente API CRUD abbastanza standard:
GET /people - get a list of people
POST /people - create a new person
GET /people/id - get a specific person
PUT /people/id - update a specific person
DELETE /people/id - delete a specific person
Tutto questo esegue il mapping a Ember-Data con lo Store/Adapter standard.
Tuttavia, diciamo che per "star" o "unstar" una persona, l'API non ci permette di farlo con l'azione di aggiornamento standard. Esiste un endpoint API specifico per questa azione:
POST /people/id/star - mark a person as "starred"
POST /people/id/unstar - mark a person as "unstarred"
Come si inserisce questa API con Ember Data?
Sembra che avrei bisogno di estendere DS.Store e DS.RESTAdapter in qualche modo, ma non sono sicuro dell'approccio migliore per renderli consapevoli di queste diverse azioni. È anche un po 'sbagliato che un adattatore generico per l'app debba essere a conoscenza delle persone protagoniste.
Nota che non ho alcun controllo sull'API, quindi non posso rendere POST /people/id
consapevole di "starring" in modo che si adatti a un aggiornamento standard.
Potrebbe accettare la mia risposta? La versione attualmente accettata non è più precisa – andorov