Закон Деметры (на самом деле должен быть предложением Деметры) гласит, что вы не должны «протягивать руку» через объект, чтобы добраться до их дочерних объектов. Если вам, как клиенту, необходимо выполнить какую-то нетривиальную операцию, большую часть времени модель предметной области, с которой вы работаете, должна поддерживать эту операцию.
REST - это, в принципе, тупая иерархия объектов. Это похоже на файловую систему ресурсов / объектов, где каждый объект может иметь дочерние объекты. Вы почти всегда добираетесь до конца с помощью REST. При желании вы можете создавать составные типы объектов по соглашению, используя методы REST, и пока поставщик и клиент соглашаются на операции более высокого уровня, вы можете избежать сквозной связи.
Итак, как вы сбалансируете REST и Demeter? Мне кажется, что они не конфликтуют, потому что REST - это сверхслабое связывание до такой степени, что поставщику бессмысленно пытаться предугадывать все потребности клиентов, тогда как Деметер предполагает, что логика может перейти на его самое естественное место за счет рефакторинга.
Однако вы можете возразить, что REST - это временная остановка, пока вы не поймете своих клиентов лучше. REST - это просто взлом? Деметра нереалистична в любом сценарии сервер / клиент?