Требуется создать БД со следующими таблицами:
- пользователи (id, email, пароль, дата создания);
- клиенты (id, имя, дата создания);
- заказы (id, id клиента, стоимость, дата создания);
Написать API, которое под /data/ выдает данные из таблицы заказов и клиентов (в формате JSON), а под /update/ обновляет данные в таблицах (например обновление имени клиента или смена id клиента, указанного в заказе). Данные операции должны допускаться только авторизованным пользователям. Пользователь считается авторизированным, если он делает HTTP запрос:
- с Bearer токеном (указан на сервере)
- с JWT токеном (назначается клиенту сервером на основе логина+пароля)
Способы авторизации зависят от пути: возможна как и Bearer авторизация, так JWT авторизация для запросов под /update/, /data/.
Ограничения:
- Для авторизации использовать модуль spring security.
- Использовать либо JDBC, либо JPA для запросов (оба содержатся в зависимостях проекта)
- Выход из системы (logout) необходим
- Версия 8 Джавы
Допускается:
- Менять архитектуру проекта любым способом
- Добавлять зависимости в проект
- Создавать дополнительные поля в таблицы БД
Приветствуется:
- Логирование через logback
- Аргументированный подход по созданию архитектуры проекта
- Дополнительные запросы и функционал
- Графический интерфейс (VUE.JS, JFX)
Добавляем клиента
Добавляем заказ
Получаем всех клиентов
Получаем все заказы
Измсеняем заказ по id
Изменяем имя клиента по id
arvikvan@gmail.com
@ArvikV
###Используемые технологии:
- Gradle
- Spring Security, Data