- написать приложение, которое по REST принимает запрос вида
POST api/v1/wallet
{
valletId: UUID,
operationType: DEPOSIT or WITHDRAW,
amount: 1000
}
после выполнять логику по изменению счета в базе данных - предусмотреть возможность получить баланс кошелька
GET api/v1/wallets/{WALLET_UUID}
стек:
java 8-17
Spring 3
Postgresql - должны быть написаны миграции для базы данных с помощью liquibase
- обратить особое внимание проблемам при работе в конкурентной среде (1000 RPS по одному кошельку). Ни один запрос не должен быть не обработан (50Х error)
- предусмотреть соблюдение формата ответа для заведомо неверных запросов, когда кошелька не существует, не валидный json, или недостаточно средств
- приложение должно запускаться в докер контейнере, база данных тоже, вся система должна подниматься с помощью docker-compose
- предусмотреть возможность настраивать различные параметры как на стороне приложения так и базы данных без пересборки контейнеров
- эндпоинты должны быть покрыты тестами
{
"walletId": "80244a3f-6870-46b0-87b4-26715d849f7e",
"operationType": "DEPOSIT",
"amount": 1200
}
Образец POST запроса
Образец GET запроса
- http://localhost:8080/api/v1/wallets/{нужный UUID}
Credentials for db:
url: jdbc:postgresql://localhost:5432/interview_test
username: user
password: postgres