Скажем, у меня есть следующая модель данных ember-data:
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
starred: DS.attr('boolean')
});
Это связано с приложением Rails со следующим довольно стандартным API CRUD:
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/Adapter.
Однако скажем, что для того, чтобы "звезда" или "неустановить" человека, 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
осведомленным о "главной роли", чтобы он соответствовал стандартным обновлениям.