Где поставить валидацию basi c на контроллере или в доменной модели - PullRequest
0 голосов
/ 26 апреля 2020

Служба A -

Есть API отдыха для обработки Command-A, на контроллере я выполняю некоторую базовую c проверку поля (проверка нуля, проверка формата электронной почты и т. Д.) 1029 *). После проверки контроллер отправляет Команду A в Command-Handler-A.

Служба B - также имеет такой же способ обработки команд, как и служба A.

Теперь, Служба B имеет сагу, которая при некотором событии отправляет Команду-А Сервису А. Служба А обрабатывает эту Команду-А, используя Command-Handler-A. Но в этом случае Command-A проходит мимо проверки c, которую я ставлю на контроллере Service-A.

Вопрос -

  1. Является ли я должны поставить все проверки в обработчик команд / модель домена? Или
  2. Я должен позвонить в Rest API Service-A из саги Service-B. (Которые делают единую точку входа в сервис). Или
  3. Любое другое решение?

Использование - Axon Framework 4.2 и Axon Server с Spring Boot.

1 Ответ

1 голос
/ 26 апреля 2020

Куда поставить основную проверку c на контроллере или в модели домена

Служба A отвечает за выполнение своих предварительных условий.

Один из эти предварительные условия состоят в том, что он получил правильное сообщение. В случае Controller-A вы должны ожидать разбора , который преобразует полученные байты в проверенную команду-A. Эта функция может быть реализована самим контроллером или делегирована другому компоненту, но она, безусловно, будет находиться внутри компонента application , а не в модели domain .

...