Описание папок/Архитектура:
- build - папка для deploy-конфигов, Docker-files
- cmd - для запуска исполняемых файлов, в нашем случае - app/main.go является входной точкой. В нем мы создаем config и прокидываем в app.Run.
- docs - сгенерированная документация.
- internal - внутренниий неимпортируемый код:
- -> app - содержит метод Run, в котором принимает config, настраивает наше приложение.
- -> config - содержит конфиги для приложения, http/ampq-серверов и т.п.
- -> entity - сущность, которая переходит между слоями и может изменять свое состояние.
- -> repository - работа с базой данных.
- -> service - содержит бизнес-логику, получает данные из repository
- -> transport - содержит папки для транспорта данных и похож на controller. Например: транспорт по http, ampq, grpc и т.д.
- -> -> http - транспорт данных(ендпоинты) по http.
- -> -> -> form - Сущности для загрузки и валидации данных.
- -> -> ampq - транспорт по ampq.
- migrations - содержит файлы миграции для базы данных.
- pkg - содержит пакеты, которые могут быть импортированны во вне. Например httpserver.
Пакеты для работы
- Gin Framework
- GORM ORM
Запуск локального окружения
- docker-compose --env-file ../../.env.example up -d