Network Service with Database - это консольное приложение-сервис, предназначенное для обработки HTTP POST запросов, выполнения различных операций, и взаимодействия с Redis и PostgreSQL базами данных.
-
Инкрементация значения в Redis
- Метод: POST
- Путь:
localhost:3000/redis/incr(если при запуске не был указан в параметрах-hostи-port) - Обработчик:
NetServDB/controllers.RedisIncr - Описание: позволяет инкрементировать значение в Redis и возвращает value
-
HMAC-SHA512 Подпись
- Метод: POST
- Путь:
localhost:3000/sign/hmacsha512 - Обработчик:
NetServDB/controllers.SignHMACSHA512 - Описание: вычисляет HMAC-SHA512 подпись и возвращает ее в виде hex строки
-
Добавление пользователя в PostgreSQL
- Метод: POST
- Путь:
localhost:3000/postgres/users - Обработчик:
NetServDB/controllers.AddUser - Описание: добавляет пользователя в базу данных PostgreSQL и возвращает id
-
Удаление ключа в Redis
сервисная ручка для которой потребуется basic auth- Метод: DELETE
- Путь:
localhost:3000/redis/del(если при запуске не был указан в параметрах-hostи-port) - Обработчик:
NetServDB/controllers.RedisRefresh - Описание: удаляет ключ из Redis
-
Обновление таблицы в PostgreSQL
сервисная ручка для которой потребуется basic auth- Метод: DELETE
- Путь:
localhost:3000/postgres/users - Обработчик:
NetServDB/controllers.TableRefresh - Описание: обновляет таблицу в PostgreSQL
Проект разработан с использованием следующих технологий:
- Gin - роутер
- logrus - инструмент для эффективного логирования; все логи пишутя в logs/all.log
- testify - библиотека для обеспечения покрытия проекта тестами
- godotenv - библиотека для конфигурирования приложения
- Postgresql - СУБД
- Redis - БД
- Selectel - облачный сервер
- http://94.26.237.90:3000/redis/incr
POST - http://94.26.237.90:3000/sign/hmacsha512
POST - http://94.26.237.90:3000/postgres/users
POST - http://94.26.237.90:3000/redis/del
DELETE - http://94.26.237.90:3000/postgres/users
DELETE
Все компоненты запущены в Docker контейнерах и объединены Docker Compose. Деплой руками через консоль Selectel.
-
Клонируйте репозиторий
git clonehttps://github.com/faringet/NetServDB.git -
Перейдите в каталог проекта cd NetServDB
-
Установите зависимости с помощью go mod
go mod download -
Соберите приложение
go build -
Для запуска выполните
./NetServDB -host <host> -port <port>(Redis-hostи-port)

