Это REST API, написанный на языке программирования Go для выполнения операций CRUD (создание, чтение, обновление, удаление) над пользователями таблицы. API требует авторизации через логин и пароль. Используемая база данных — PostgreSQL с библиотекой go-pg.
- Логирование
- Авторизация для доступа к API с JWT key
- Роль администратора с полными разрешениями CRUD
- Роль только для чтения с доступом "чтение"
Документация openAPI была создана с использованием swag и доступна в директории /docs.
Для тестов у хранилища есть интерфейс, можно переключиться на mockDB
API управляется с помощью Docker и docker-compose. Запускается в пустом контейнере.
- Фреймворк Echo c Middleware и группами маршрутов.
- PostgreSQL и go-pg c двумя версиями миграции (go-pg/migrations). Запросы к БД реализованы, как в ORM режиме, так и в чистом SQL.
- JWT с хранением роли пользователя.
- Bcrypt для шифрования паролей.
- go-playground/validator.
- ilyakaznacheev/cleanenv конфигурация.
- GitHub Action, для запуска:
- go vet, go lint, golangci-lint и staticcheck.
Обратитесь к коду и комментариям внутри для более глубокого понимания API и его работы.