Giter Site home page Giter Site logo

echo_pgsql's Introduction

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

echo_pgsql's People

Contributors

vv198x avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.