Здесь представлено задание по созданию REST API сервиса, отслеживающего выполнение заданий пользователями и начисляющий награды за их выполнение. Сервис написан на Go и использует PostgreSQL в качестве базы данных, Gin в качестве фреймворка.
Для запуска сервиса необходимо установить Docker и Docker Compose.
- Клонируйте репозиторий:
git clone https://github.com/meligera/tech-test-vk.git
cd tech-test-vk
- Запустите контейнеры Docker:
docker-compose up -d
Это запустит контейнеры для сервиса и базы данных PostgreSQL. База данных будет проинициализирована с помощью init.sql
при первом запуске.
- Сервис будет доступен по адресу
http://localhost:8080
.
Insomnia API collection - https://mamrenko.ru/downloads/Insomnia-VK-TECH-DEMO.json
Postman API collection - https://mamrenko.ru/downloads/VK-TECH-DEMO.postman_collection.json
- URL:
/create_user
- Метод:
POST
- Тело запроса:
{
"name": "имя пользователя",
"balance": 0
}
- 200 OK: Пользователь успешно создан.
- 400 Bad Request: Ошибка в данных запроса. (такой пользователь уже создан)
- 500 Internal Server Error: Внутренняя ошибка сервера.
Если не указан параметр balance в запросе, то по умолчанию он будет равен 0
- URL:
/create_quest
- Метод: POST
- Тело запроса:
{
"name": "название задания",
"cost": 0
}
- 200 OK: Задание успешно создано.
- 400 Bad Request: Ошибка в данных запроса. (такое задание уже создано)
- 500 Internal Server Error: Внутренняя ошибка сервера.
- URL:
/complete
- Метод: POST
- Тело запроса:
{
"user_id": 1,
"quest_id": 1
}
- 200 OK: Задание успешно выполнено.
- 400 Bad Request: Ошибка в данных запроса. (задание уже было выполено пользователем)
- 500 Internal Server Error: Внутренняя ошибка сервера.
- URL:
/history/:userId
- Метод: GET
- 200 OK: Возвращает имя пользователя, баланс и список завершенных квестов.
- 500 Internal Server Error: Внутренняя ошибка сервера.
- URL:
/users
- Метод: GET
- 200 OK: Возвращает список всех пользователей с их id, именами и балансами.
- 500 Internal Server Error: Внутренняя ошибка сервера.
- URL:
/quests
- Метод: GET
- 200 OK: Возвращает список всех заданий с их id, названиями и стоимостью.
- 500 Internal Server Error: Внутренняя ошибка сервера.