Ресурсы не управляют Дизайн интерфейса
То, как вы организуете свою модель предметной области, не должно сильно влиять на дизайн графического интерфейса и наоборот.
Что если мы хотим отредактировать все проекты одновременно на одной веб-странице?
Тогда вы, вероятно, должны предоставить виджеты для каждого и POST каждое обновление последовательно. Вы можете использовать AJAX, чтобы сделать это приятным опытом для конечного пользователя
Сейчас мы делаем "/ company / 1 / projects / multiedit", "/ company / 1 / projects / multupdate" - но, как вы видите, это не отдых.
И это нормально, если вам не нужно быть RESTful - не так ли? Ваше приложение для внешнего использования или для внутреннего бизнес-процесса?
REST - это гораздо больше, чем организация ресурсов - вложенных или иных. Вам также следует позаботиться о навигации по представлениям ресурсов.
Если вы действительно чувствуете, что вам нужно быть RESTful, и если вы верите (как вы упомянули в комментарии ниже), что состояние всех проектов и сотрудников необходимо атомарно обновлять, тогда вам следует
1. Ввести новые контейнерные ресурсы «Сотрудники» и «Проекты», чтобы смоделировать связь между Компанией и набором «Сотрудник», а также между Компанией и набором «Проект».
2. В ответ на GET on Company вы должны включить URI для ресурсов «Сотрудники» и «Проекты» (т. Е. Всего два URI).
3. В ответ на GET для сотрудников или проектов вы должны либо вернуть состояние всех базовых ресурсов или URI для каждого, чтобы можно было определить их состояние.
4. При обновлении сотрудников вы должны переслать все состояние базовых ресурсов (предположительно, одним огромным). Новое государство полностью заменяет старое государство,
Этот последний шаг требует значительных затрат - вам следует пересмотреть ограничение на то, что это обновление «все или ничего». Помните, что это не имеет ничего общего с REST - то, что вы сделали, это выставили инвариант в вашей бизнес-логике интерфейсу сервиса .
Лично я бы:
1. сделать все возможное, чтобы удалить этот инвариант из уровня представления
2. моделировать ресурсы без вложенности - это более гибко, и REST ничего не может сказать о URI, за исключением того, что каждый ресурс должен иметь один
3. представить ресурсы сотрудников и проектов, чтобы смоделировать связь между компанией и сотрудником и проектом
4. попросите представительство компании вернуть URI для проектов и сотрудников (еще два).
5. каждый сотрудник и проектное представительство должны содержать соответствующую компанию
6. Разработайте пользовательский интерфейс, чтобы он мог отображать список проектов / сотрудников для компании и позволять обновлять каждый из них индивидуально.
7. Пакет всех POST вместе и отправлять их через AJAX на общую кнопку нажмите
Стоит взглянуть на великолепные скринкасты, которые Райан Бейтс сделал на вложенных ресурсах, но не забывайте, что вложенные ресурсы не являются основной частью REST - цитирую Роя Филдинга
Важно то, что каждый важный ресурс имеет URI, что позволяет получать представления этого ресурса с помощью GET.
Достаточно сказано - удачи!
Chris