Видеопрезентация: link
Требуется разработать RESTfull API service — биржу для проведения торгов криптовалютами.
- Spring Boot;
- возвращаемые данные в формате Json;
- хранилище данных.
- роли: админ/пользователь
- Swagger (сделан Postman)
- PostgreSql
- Spring Security
- accept:application/json или accept:application/xml к HTTP-запросу
- верификация письмом
- сервис по запросу может возвращать данные в json ИЛИ xml.
- формат может быть изменен добавлением header
В упрощенном варианте достаточно при получении запроса проверять полученный secret_key — если данный метод доступен только администратору и secret_key тоже принадлежит администратору, то выполнять операцию, а иначе возвращать http статус — 403 Forbidden
- SpringBoot
- Gradle
- Postgres + Liquibase для менеджмента скриптов
- Hibernate
- JPA (JpaRepository) для гибких запросов в бд
- WebMVC
- Mapstruct
- JavaX Validators
- Lombok (@RequiresArgsConstructor, @Getter/@Setter)
- SpringSecurity.TextEncryptor (для генерации строки по некоторому уникальному полю приходящего дто)
- тесты для API через Postman
Приглашение для workspace: https://app.getpostman.com/join-team?invite_code=b8f2c5577b1cae7a8ae397be1432ebfe&target_code=363abd10cf151dbf8448435771af1129
После принятия может выскочить ошибка 500, это нормально, так как приглашение уже будет недействительным. Ниже название и айдишник, чтобы найти его в своем профиле Postman.
Workspace Id: 666c2991-2828-445d-aa44-1e1a945e3391
Workspace Name: CryptoTrade_Relex2023
Воркспейс выглядит следующим образом:
![]()
- кастомные валидаторы для почты и логина (@EmailUnique, @LoginUnique)
- логгер SLF4J для вывода сообщений о запрошенных операциях в консоль
- безопасность простейшим способом (через проверку secretKey)
Предполагается, что все манипуляции приложением будут идти через личный кабинет (например, так сделано во многих банковских приложениях с инвестициями и прочим), поэтому вся работа с валютой и транзакциями будет включать в пути users/{userID}.
- создать нового пользователя
- удалить пользователя
- список всех
- Создание нового администратора
- Удаление администратора
- Список всех
- Список всех валют
- Создание валюты
- Удаление валюты
- Сумма по валюте
- для двух конкретных валют
- все обменные к-ты
- изменить обменный к-т
- создать обменный к-т
- удалить обменный к-т
- вывести валюту
- внести валюту
- перевести валюту с кошелька на кошелек (и обменять при этом, если нужно)
- история транзакций пользователя
- вся история транзакций
- число транзакций в заданном промежутке времени
- все кошельки списком
- все кошельки одного пользователя
- конкретный кошелек
- создать кошелек
- удалить кошелек




























