Сами внешние запросы, обработка, взаимодействия лучше вынести как Gateway
Ага, так и сделал, спрятав это дело за Gateway и обернул его использование адаптером для исп в сервисных объектах. Осталось понять чья ответственность формировать результат работы апишки, а чья обрабатывать.. И все это в контексте довольно простого приложения(очень не хочется разводить кучу классов) Отличную статью у Антона в канале телеги нашел..
Ага, так и сделал, спрятав это дело за Gateway и обернул его использование адаптером для исп в сервисных объектах. Осталось понять чья ответственность формировать результат работы апишки, а чья обрабатывать.. И все это в контексте довольно простого приложения(очень не хочется разводить кучу классов) Отличную статью у Антона в канале телеги нашел..
Формированием ответа от Апи занимается, внезапно, сама апи
Обработка вне гейтвея лучше, но не знаю вашего кейса
Да, пардон имел ввиду уже переработку результата гейтвея. Т.е. если по нубски смотреть через призму dry-monads то результат обращения к интерфейсу гейтвея, в случае если содержимое скажем содержит "fail_msg" то Failure(..) иначе Success(..) Т.е. это я к тому что наличие fail_msg - техническая сторона свойственная Gateway.. но требуется для формирования ошибки на уровне БЛ и дальнейшей ее обработки.
Да.. точно.. как репозитории возвращают удобный и корректный формат сервисам, так и адаптеры рест-гейтвеев должны поступать))
Сортировку пузырьком. Но если серьёзно, то пришлось однажды сложную структуру с огромной вложенностью сущностей одного типа (жисон на от 3 до 6 метров) обходить в глубину как граф. А так как вложенность может быть любой и в целом маппинг очень сложный (данные одной сущности нашей системы могли быть раскиданы по разным корням на разных уровнях и четкой спецификации о количестве уровней уровней и веток не было), то делал рекурсивный обход графа на стеке.