Skip to content

Entrypoint и Bootstrap

Entrypoint

Точкой входа в наше приложение является файл cmd/api/main.go.

Самые важные действия здесь происходят в 28 и 30 строке. Давай рассмотрим их. Пройдем в функцию Bootstrap() с помощью ctrl/cmd + ЛКМ. Таким образом мы перейдем к файлу run/app.go.

Bootstrap

Функция Bootstrap инициализирует приложение. Рассмотрим эту функцию поближе, так как весь процесс инициализации приложения происходит здесь.

С полной версией ты можешь ознакомиться  в репозитории.

Внутри bootstrap происходит инициализация компонентов приложения, таких как провайдер электронной почты, сервис уведомлений, менеджер токенов, декодер, менеджер ответов сервера, генератор UUID, хешер, сканер таблицы и др. Затем функция создает базу данных и ее адаптер и инициализирует мигратор, который выполняет миграции таблиц в БД. Далее функция bootstrap инициализирует кеш на основе Redis и хранилища, используемые для работы с базой данных. Затем создает сервисы и контроллеры, инициализирует роутер и конфигурирует HTTP-сервер. Наконец, функция возвращает приложение.

Далее функция run стартует веб-сервер с graceful shutdown, используя context.