Number-storage-service позволяет хранить число, и прибавлять к нему заданное.
Число хранится в PostgreSQL.
К сервису можно обратиться как по REST (порт 8080), так и по gRPC (порт 50051).
Для создания REST эндпоинтов был использован grpc-gateway.
REST эндпоинты: (GET) /numbers, (PUT) /number
gRPC эндпоинты: GetNumber, UpdateNumber
Проект должен запускаться через docker-compose.
Swagger должен быть доступен по порту 8008.
Стек проекта: Go, gRPC, REST, Docker, Swagger
- Первым делом нужно скопировать гит репозиторий в подходящию для вас папку.
git clone https://github.com/rogudator/number-storage-service.git
- Затем перейти в папку содержащую проект.
cd number-storage-service
- Теперь нужно создать .env с переменными окружения, необходимых для БД. Можно переимновать файл example.env в просто .env или создать .env самостоятельно, скопировав текст ниже:
POSTGRES_USER=user
POSTGRES_PASSWORD=unique-password
POSTGRES_DB=number_storage
- Теперь нужно забилдить проект. Этот этап может занять время.
docker compose build
- Проект должен запуститься этой командой.
docker compose up
- Нажмите на New.
- Выберете HTTP Request.
- Введите адрес localhost:8080/number (Тут вы уже можете делать GET запрос)
- А вот так можно сделать PUT запрос
{
"number": 2
}
- Нажмите на New.
- Выберете gRPC Request.
- Дальше import .proto file
- Выберете number_storage.proto
- Если будет ругаться нажмите на + Add import path
- Укажите путь к /proto папке.
- Нажмите import as API
- Укажите в качесте хоста localhost:50051
- Пример запроса GetNumber()
- Пример запроса UpdateNumber()
{
"number": 2
}