Можно ли использовать API как ядро для всего приложения? Как с ним грамотно взаимодействовать?
Развернутая суть вопроса:
У меня стоит задача разработать сервис, который в дальнейшем может и будет масштабироваться. Его компоненты будут также использоваться в мобильном приложении, как для Android так и для iOS.
На начальном этапе хочется инкапсулировать всю бизнес-логику проекта отдельно от его реализаций. Например, спрятать всю эту логику в API, а в приложениях-реализациях уже только получать и обновлять данные.
Вопрос в том, как предусмотреть работу приложений на случай если API отвалится? Хранить дубликат базы в самом приложении, т.к. это также может быть полезно для увеличения быстродействия?
И если это так, то каким образом стоит переносить миграции между базами? Только вручную?
Буду рад любым best practices в этой области, а по возможности еще и ссылкам на полезные статьи. Спасибо!
это решается на уровне API, а не конечных приложений. API не должен отваливаться по определению, для этого используют load balancing и сопутствующие технологии. Но мне кажется в вашем случае все это избыточно, достаточно сделать во всех приложениях проверку на доступ к апи, и если его нет, выводить сообщение с профилактическими работами