Проект запускается с помощью docker-compose. Для этого перейдите в корневую папку проекта и в консоли запустите команду:
docker-compose up --build
Api апускается на 8080 порту по умолчанию
Тесты на различные пользовательские сценарии доступны в папки tests. Запускаются через
go test -v github.com/btnbrd/avitoshop/tests -run '' tests/e2e_test.go
После того, как проект запустится вам доступны следующие запросы
POST http://localhost:8080/authАутентификация пользователя. Принимает JSON:
{
"username": "user1",
"password": "password123"
}{
"token": "your_jwt_token"
}После аутентификации нужно использовать полученный token для доступа к защищённым маршрутам, добавляя его в Authorization заголовок:
Authorization: Bearer your_jwt_token
POST http://localhost:8080/sendCoinОтправляет монеты другому пользователю. Принимает JSON:
{
"toUser": "user2",
"amount": 100
}Отправка монет самому себе запрещена и возврщает Ошибку 400 -- неверный запрос.
- 200 – Монеты успешно отправлены.
- 400 – Неверный запрос.
- 401 – Неавторизованный пользователь.
- 500 – Внутренняя ошибка сервера.
GET http://localhost:8080/infoВозвращает информацию о пользователе: баланс монет, инвентарь и историю транзакций.
{
"coins": 500,
"inventory": [
{
"type": "sword",
"quantity": 1
},
{
"type": "shield",
"quantity": 2
}
],
"coinHistory": {
"received": [
{
"fromUser": "user3",
"amount": 200
}
],
"sent": [
{
"toUser": "user2",
"amount": 100
}
]
}
}GET http://localhost:8080/buy/swordПокупает предмет за монеты.
- 200 – "Успешный ответ."
- 400 – "Неверный запрос."
- 401 – "Неавторизован."
- 500 – "Внутренняя ошибка сервера."