Skip to content

vv198x/echo_pgsql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

echo_pgsql

Это REST API, написанный на языке программирования Go для выполнения операций CRUD (создание, чтение, обновление, удаление) над пользователями таблицы. API требует авторизации через логин и пароль. Используемая база данных — PostgreSQL с библиотекой go-pg.

Требования

  • Логирование
  • Авторизация для доступа к API с JWT key
  • Роль администратора с полными разрешениями CRUD
  • Роль только для чтения с доступом "чтение"

Технические подробности

Документация openAPI была создана с использованием swag и доступна в директории /docs.

Для тестов у хранилища есть интерфейс, можно переключиться на mockDB

API управляется с помощью Docker и docker-compose. Запускается в пустом контейнере.

API использует:

  • Фреймворк 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.

Swagger

Дополнительная информация

Обратитесь к коду и комментариям внутри для более глубокого понимания API и его работы.