Skip to content
This repository has been archived by the owner on Jul 20, 2021. It is now read-only.
/ go-genesis-ses-2021 Public archive

web api golang task for se school application

Notifications You must be signed in to change notification settings

glbter/go-genesis-ses-2021

Repository files navigation

go-genesis-ses-2021

web api golang task

genesis-ses-2021.postman_collection.json - postman collection to test this api

верифікація пошти при створенні користувача

взагалі для справжнього додатку необхідно при регістрації на сервісі верифікувати користувача через лист на пошту, що є окремим завданням, з пунктом пошуку сервісу повідомлень. Також необхідно перевірити чи існує така адреса базі даних (вважаємо, що це поле є унікальним), напевно, не варто видавати користувачу, що користувач з даною адресою існує. Перед цим необхідно перевірити чи може така адреса існувати, за допомогою бібліотек чи регулярних виразів.

дані користувача

з існуючих даних (ім*я, адреса пошти, та пароль) хешуватимемо пароль для захисту облікового запису користувачів при вторгненні в базу. При цьому можливо також використовувати сіль і тд, але в реальних застосунках краще використати надійні бібліотеки.

логін

прийматимемо лише пошту та пароль, перевіряючи чи існує користувач з такою поштою, і в нього той самий хеш паролю. Отримаємо відповідь токен автентифікації, що житиме певний час.

отримання даних

для цього звернемося до API https://api.blockchain.com та https://bank.gov.ua. Перший виклик для отримання курсу біткоїна у долари, api дає можливість отримати курс і для гривень, але має затримку у курсі, саме тому використаємо сервіс нацбанку для отримання курсу долару у гривні. Перемножимо кількість_доларів * гривень у доларі й маємо результат.

файл конфігурації

було вирішено взяти json формат, за критерієм зручності читання. Також файл config.go містить методи з читання конфігу та ініціалізації (для зручності використання та можливості відловлювати помилки було обрано цей формат)

база даних

також був написаний модуль для читання csv файлів. Цей формат використовується для табличних даних, є досить зручним.

About

web api golang task for se school application

Resources

Stars

Watchers

Forks

Languages