API отвечает 200, но существуют прочие критерии, позволяющие судить об успешности запроса и целостности данных (например, наличие каких-то полей, таких как error или заполненность какого-то массива).
Вопрос в следующем - как наиболее правильно на ваш взгляд обработать все возможные сценарии ошибок/нецелостности данных с архитектурной точки зрения? Пока что есть 2 подхода:
1. В репозитории до маппинга апишной модели в доменную делаем все нужные проверки и в случае чего кидаем кастомный exception, который в последствии обрабатывается на уровне всех остальных ошибок.
2. Возвращаем из репозитория Result.Success или Result.Error (либо что-то аналогичное) в зависимости от необходимых условий и обрабатываем такие ошибки отдельно от ошибок сети и прочего.
Каждый из подходов имеет свои плюсы и минусы, хотелось бы узнать ваши мысли по этому поводу. Может есть ещё варианты?
я невеликий иксперт но. если ошибка на низком уровне, типа CRC то пусть источник данных (над которым высится репозиторий я надеюсь) и обрабатывает. а вот ежели бизнес правила забраковали то пущай оне и отдуваются
Обсуждают сегодня