Спасибо за такой подробный разбор построения архитектуры. После прочтения, загорелся применить в такой подход в одном из своих приложений. По началу все отлично переносилось и прекрасно ложилось на новую архитектуру. Но внезапно уперся в довольно очевидную проблему — авторизация. На каком слое она должна быть?
Пытаться все затянуть на слой api, но у меня вся авторизация — генерация хэша по логину-паролю и методы для сохранения и чтения этого хэша из SecureStorage, и дальнейшее внедрение в headers всех запросов к серверу. Не очень то похоже на API.
Если выносить в отдельный модуль, то получается его нужно внедрять в сервис, чтобы подмешивать в headers в dio. Проблема усугубляется тем, что чтение из SecureStorage асинхронное, а это значит нужно как-то синхронизировать момент инициализации модуля авторизации и модуля API.
Как вы решаете эту проблему в своих проектах?
П.С.: В dart и flutter я новичок и еще не вник в то как принято строить архитектуру приложений, поэтому мой вопрос может выглядеть глупо! =)
Спасибо за такой подробный разбор построения архитектуры. После прочтения, загорелся применить в такой подход в одном из своих приложений. По началу все отлично переносилось и прекрасно ложилось на новую архитектуру. Но внезапно уперся в довольно очевидную проблему — авторизация. На каком слое она должна быть?
Пытаться все затянуть на слой
api
, но у меня вся авторизация — генерация хэша по логину-паролю и методы для сохранения и чтения этого хэша изSecureStorage
, и дальнейшее внедрение вheaders
всех запросов к серверу. Не очень то похоже на API.Если выносить в отдельный модуль, то получается его нужно внедрять в сервис, чтобы подмешивать в
headers
вdio
. Проблема усугубляется тем, что чтение изSecureStorage
асинхронное, а это значит нужно как-то синхронизировать момент инициализации модуля авторизации и модуля API.Как вы решаете эту проблему в своих проектах?
П.С.: В dart и flutter я новичок и еще не вник в то как принято строить архитектуру приложений, поэтому мой вопрос может выглядеть глупо! =)