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 clone
https://github.com/faringet/NetServDB.git -
Перейдите в каталог проекта cd NetServDB
-
Установите зависимости с помощью go mod
go mod download
-
Соберите приложение
go build
-
Для запуска выполните
./NetServDB -host <host> -port <port>
(Redis-host
и-port
)