Скажем, у меня есть следующая модель ember-data:
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
starred: DS.attr('boolean')
});
Это взаимодействует с приложением Rails с помощью следующего довольно стандартного CRUD API:
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
Все это сопоставляется с Ember-Data со стандартным Store/ Адаптер.
Однако допустим, что для того, чтобы «пометить» или «снять пометку» человека, API не позволяет нам сделать это с помощью стандартного действия обновления. Для этого действия существует конкретная конечная точка API:
POST /people/id/star - mark a person as "starred"
POST /people/id/unstar - mark a person as "unstarred"
Как мне совместить этот API с Ember Data?
Похоже, мне нужно каким-то образом расширить DS.Store и DS.RESTAdapter, но я не знаю, как лучше всего информировать их об этих различных действиях. Также кажется немного неправильным, что универсальный адаптер для приложения должен знать о людях в главных ролях.
Обратите внимание, что я не контролирую API, поэтому я не могу POST /people/id
знать о «пометке звездочкой», чтобы он соответствовал стандартному обновлению.