vv198x / echo_pgsql

echo REST API on go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 и его работы.

About

echo REST API on go


Languages

Language:Go 90.4%Language:Shell 7.7%Language:Dockerfile 1.7%Language:Makefile 0.2%