Робочий потік застосунку
Як було сказано в ознайомленні з класом застосунку, Ditsmod надає API для написання застосунків з різними архітектурними стилями (REST, tRPC, GraphQL, WebSockets, Microservices і т.д.). Ініціалізація починається зі створення інстансу класу застосунку, і саме на цьому етапі визначається яку конфігурацію приймає клас застосунку, і яка буде послідовність його збірки.
Етапи ініціалізації застосунків з різними архітектурними стилями можуть відрізнятись, але, як правило, відбувається наступне:
- Сканування застосунку за допомогою ModuleManager стартує починаючи від кореневого модуля.
- Декоратори кореневого модуля, модуля фіч та ініт-декоратори дозволяють закріпляти за класами модулів певні метадані. В процесі сканування застосунку, відбувається нормалізація та валідація цих метаданих.
- Потім AppInitializer ці метадані аналізує, збирає провайдери, та запускає розширення.
- Завершується ініціалізація застосунку в класі Application, запускається вебсервер, і застосунок почитає працювати в штатному режимі приймаючи HTTP-запити.