Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 4.02 KB

File metadata and controls

40 lines (28 loc) · 4.02 KB

Дипломная работа «Облачное хранилище»

Задача

Разработать REST-сервис, предоставляющий REST-интерфейс для загрузки файлов и вывода списка уже загруженных файлов пользователя. Все запросы к сервису должны быть авторизованы. Заранее подготовленное веб-приложение (FRONT) должно подключаться к разработанному сервису без доработок, а также использовать свой функционал для авторизации, загрузки и вывода списка файлов пользователя.

Требования

  • Сервис должен предоставлять REST-интерфейс для интеграции с FRONT.
  • Сервис должен реализовывать все методы, описанные в yaml-файле:
    • Авторизация (логин и логаут).
    • Вывод списка файлов.
    • Добавление файла.
    • Удаление файла.
    • Скачивание файла.
    • Переименование файла.
  • Все настройки должны вычитываться из файла настроек (yml).
  • Информация о пользователях сервиса (логины для авторизации) и данные должны храниться в базе данных (на выбор).

Требования к реализации

  • Приложение разработано с использованием Spring Boot.
  • Использован сборщик пакетов gradle/maven.
  • Для запуска используется docker, docker-compose.
  • Код размещён на Github.
  • Код покрыт unit-тестами с использованием mockito.
  • Добавлены интеграционные тесты с использованием testcontainers.

Описание веб-приложения

Фронт-приложение на Vue.js, предоставляющее веб-интерфейс пользователю, дано как-есть.

Для его работы требуется nodejs версии от 19.7.0.

Следуя описанию, оно запускается командами npm install, npm run serve в его рабочей директории.

Корневой URL для вызова тылового сервиса прописывается в файле .env.

По умолчанию приложение запускается на порту 8080 и доступно в браузере как http://localhost:8080. Если порт 8080 занят, занимается ближайший следующий доступный порт. После выполнения npm run serve в терминале отображается, на каком порту оно запустилось.

Для авторизации веб-приложение присылает на оконечник /login логин и пароль, ожидая в ответ токен авторизации (произвольного вида). Все последующие авторизованные запросы от него сопровождаются этим токеном в заголовке "auth-token". Выход из приложения осуществляется запросом к оконечнику /logout, который удалит/деактивирует токен. Последующие запросы с этим токеном будут не авторизованы и вернут код 401.