Ddd — Куда должна идти синхронизация с удаленным API?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ddd — Куда должна идти синхронизация с удаленным API?

Сообщение Anonymous »

Чтобы мое приложение работало, мне необходимо регулярно синхронизировать данные из внешнего сервиса (это может быть API или простой текстовый файл, но на данный момент это API).
Поскольку для этого потребуется создать/обновить множество сущностей одновременно, мне нужно создать доменную службу. Однако мне также нужно создать несколько DTO, которые будут содержать ответ удаленного API, верно?
Куда должна идти эта логика? Должна ли у меня быть следующая структура каталогов:

Код: Выделить всё

Domain -
Model - // my set of entities and repository interfaces are here
....
Synchronization -
RunSynchronizationService.php // domain service
Application
Synchronization -
SynchronizeData.php // application service
SynchronizationDataSourceInterface.php // used by application service
MySpecificRemoteApiDataSource.php // this implements the interface above
SynchronizationDataSourceResponse.php // this would be returned by each call of  SynchronizationDataSourceInterface method, and would contain data normalized, but not validated.
Infrastructure -
MyConcreteImplementationOfModelEntityRepository.php
И когда я хочу синхронизировать данные, я просто вызываю метод синхронизации Application\Synchronization\SynchronizeData, который возьмет конкретную реализацию SynchronizationDataSourceInterface, вызовет его методы и проверит возвращенные объекты SynchronizationDataSourceResponse. перед передачей их в Domain\Model\Synchronization\RunSynchronizationService?
Или мне следует удалить RunSynchronizationService (доменную службу) и позволить службе приложений (SynchronizeData.php) создавать/обновлять объекты домена по адресу каждом этапе процесса синхронизации?

Подробнее здесь: https://stackoverflow.com/questions/418 ... ote-api-go
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»