Common Lib
Библиотека общих компонентов для микросервисной архитектуры проекта Mountain Tour. Пакет содержит унифицированные инструменты для работы с конфигурацией, базами данных, логированием и безопасностью, обеспечивая единство кода во всех сервисах.
Установка
Для использования библиотеки в своем микросервисе добавьте её через go get:
Основные модули
-
Config (pkg/config)
Обеспечивает строго типизированную загрузку настроек из переменных окружения (ENV). Поддерживает валидацию обязательных полей и автоматическую конвертацию типов данных.
-
Logger (pkg/logger)
Высокопроизводительный логгер на базе uber-go/zap. Настроен для вывода структурированных JSON-логов, что идеально подходит для систем сбора и анализа логов (ELK Stack, Grafana Loki).
Доступные уровни: debug, info, warn, error
-
Errors (pkg/errors)
Кастомная реализация интерфейса error, позволяющая прокидывать строковые коды (Code) и оборачивать исходные ошибки для сохранения контекста и упрощения отладки.
-
JWT (pkg/jwt)
Модуль для работы с JSON Web Tokens (алгоритм шифрования HS256). Интегрирован с пакетом uuid для надежной идентификации пользователей.
-
Database (pkg/database)
Инициализация пула соединений PostgreSQL (sql.DB). Включает в себя:
Поддержку PingContext для проверки соединения при старте.
Гибкую настройку лимитов подключений (MaxOpenConns, MaxIdleConns).
Зависимости (Dependencies)
Core: go 1.25.7
UUID: github.com/google/uuid v1.6.0
Postgres Driver: github.com/lib/pq v1.12.3
JWT: github.com/golang-jwt/jwt/v5 v5.3.1
Logging: go.uber.org/zap v1.28.0
Установка через go get github.com/yousefggg/common-lib