Создать REST API на Golang, которое имитирует работу банкомата. Приложение должно поддерживать операции по созданию аккаунтов, пополнению баланса, снятию средств и проверке баланса. Все операции должны логироваться в консоль. Для обработки операций использовать горутины.
Определить интерфейс BankAccount с методами:
Deposit(amount float64) error- пополнение баланса.Withdraw(amount float64) error- снятие средств.GetBalance() float64- получение текущего баланса.
Реализовать этот интерфейс в структуре Account.
Для каждой операции (пополнение, снятие, проверка баланса) должна создаваться отдельная горутина. Использовать каналы для передачи данных между горутинами.
Основные операции:
- Создание нового аккаунта.
- Пополнение баланса.
- Снятие средств.
- Проверка баланса.
Все операции должны логироваться в консоль с указанием времени выполнения операции и идентификатора аккаунта.
Обеспечить потокобезопасность операций с балансом аккаунта.
Реализовать следующие эндпоинты:
POST /accounts- создание нового аккаунта.POST /accounts/{id}/deposit- пополнение баланса.POST /accounts/{id}/withdraw- снятие средств.GET /accounts/{id}/balance- проверка баланса.