- Отримувати поточний курс біткоіна (BTC) у гривнях (UAH).
- Підписувати електронні адреси на отримання інформації про зміну курсу.
- Відправляти поточний курс на всі підписані електронні адреси. Дані зберігаються у файловій системі, що виключає необхідність у використанні бази даних.
- main.go: Головний файл для запуску сервісу.
- handlers.go: Містить обробники для всіх HTTP-запитів.
- storage.go: Містить функції для роботи з файловою системою.
- email.go: Містить функції для відправки електронних листів.
- getRate.go: Функції для взаємодії з api third party сервіса.
- api_test.go: Файл з тестами.
Попередньо має бути обов'язково заповнений .env файл відповідними параметрами
docker-compose up -d --build app-service
docker-compose up -d --build
docker-compose up -d --build test-api
Для прикладу буде використаний python з бібліотекою requests
Цей запит повертає поточний курс BTC до UAH, використовуючи публічний API сервісу курсу валют.
>>> response = requests.get("http://127.0.0.1:8080/api/rate")
>>> response, response.text
(<Response [200]>, '2604430\n')
Цей запит підписує e-mail на розсилку з інформацією про курс.
email: електронна адреса
>>> response = requests.post("http://127.0.0.1:8080/api/subscribe", data={"email":"[email protected]"})
>>> response
<Response [200]>
>>> response = requests.post("http://127.0.0.1:8080/api/subscribe", data={"email":"[email protected]"})
>>> response
<Response [409]>
Цей запит відправляє поточний курс BTC до UAH на всі підписані електронні адреси.
>>> response = requests.post("http://127.0.0.1:8080/api/sendEmails")
>>> response
<Response [200]>