Как сделать патч с ng-ресурсом при работе с агрегированной конечной точкой REST

У меня есть довольно простая модель CRUD для моего REST. Моя проблема заключается в том, как обрабатывать PATCH или PUT, когда я агрегирую для повышения производительности и поддержания общей бизнес-логики на стороне сервера.

Допустим, у меня есть компания и отделы. Вот конечные точки CRUD

GET /companies // list all companies
GET /companies/25 // GET company with ID 25
GET /departments  // list all departments
GET /departments/65 // GET department with ID 65

Раньше клиент GET /companies/25 который возвращается

{id:"25",name:"my firm",departments:["65","72","10]}

тогда он будет делать отдельные звонки для отделов. (да, я мог бы использовать гиперссылки в ответе, но это простой пример)

Теперь я хочу создать конечную точку агрегации, так что это один вызов. GET /companies/25 вернусь

{id:"25",name:"my firm",departments:[
   {id:"65", name:"Marketing"},
   {id:"72", name:"Sales"},
   {id:"10", name:"R&D"},
]}

(реальная ситуация намного сложнее)

Проблема в том, что это становится единым $resource, Если я захочу PUT или же PATCH что бы ни изменилось, это может послать много информации, так как ng-resource не понимает, что просто id а также name являются частью отдела "25" и должны быть отправлены, а остальные были предоставлены для удобства.

Как я использую PATCH/PUT с ng-resource когда конечная точка агрегируется?

И наоборот, если у меня есть отдельный URL-адрес конечной точки для агрегации, например,

GET /full_companies/25

Тогда это становится еще сложнее, потому что ng-resource не понимает один URL для запроса (GET) и еще один для команды (PUT/PATCH/DELETE)?

0 ответов

Другие вопросы по тегам