Должен ли я генерировать исключение на уровне репозитория или в службе API? - PullRequest
0 голосов
/ 20 июня 2019

Я хотел бы спросить кое-что об архитектуре программного обеспечения. Я структурирую свой бэкэнд, чтобы следовать чистой архитектуре / гексагональной архитектуре или чему-то еще. Я хочу сказать, что я разделяю некоторые опасения.

В моем сервисе у меня есть репозиторий, реализация которого вызывает API из другого стороннего сервиса. Допустим, я хочу получить сущность. Реализация репозитория getEntity(id) вызывает только конечную точку API. Если объект не найден, я должен выбросить свой пользовательский NotFoundException на уровне реализации API или на уровне хранилища?

Repository.ts

async class EntityRepository {
   getEntity(id): Entity {
      const entity = await this.apiService.getEntity(id);
      return entity
   }
}

APIService.ts

async class APIService {
  getEntityAPI(id) {
    const response = axios.get(3rd_party_api_url, id);
    return response;
  }
}

Я еще не поместил ошибку выброса, потому что я не знаю, куда поместить ошибку. Что лучше ? Киньте его в репозиторий или в API Service?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...