Я работаю над проектом, в котором мы пытаемся применить как доменный дизайн, так и REST к сервис-ориентированной архитектуре. Мы не беспокоимся о 100% соблюдении REST; вероятно, было бы лучше сказать, что мы пытаемся создать ресурсно-ориентированные HTTP API (~ Уровень 2 модели зрелости REST Ричардсона). Тем не менее, мы стараемся держаться подальше от использования HTTP-запросов в стиле RPC, т.е. мы пытаемся реализовать наши HTTP-глаголы в соответствии с RFC2616, вместо того, чтобы использовать , например, POST
делать IsPostalAddressValid(...)
.
Тем не менее, акцент на этом, кажется, происходит за счет нашей попытки применить доменно-ориентированный дизайн. Только с GET
, POST
, PUT
, DELETE
и несколько других редко используемыми методами, мы склонны строить Cruddy услуги, а также услуги Cruddy , как правило, имеют анемию модели предметной области.
POST
: Получить данные, проверить их, сбросить в данные. GET
: Получить данные, вернуть их. Там нет реальной бизнес-логики. Мы также используем сообщения (события) между сервисами, и мне кажется, что большая часть бизнес-логики строится вокруг этого.
Находятся ли REST и DDD в напряжении на каком-то уровне? (Или я что-то здесь неправильно понимаю? Возможно, мы делаем что-то еще не так?) Возможно ли построить сильную модель предметной области в сервис-ориентированной архитектуре, избегая при этом вызовов HTTP в стиле RPC?