Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileStorage

Микросервис, выполняющий роль хранилища различных файлов и их атрибутов. Предоставляет HTTP API и принимает запросы и отдает ответы в формате JSON.

Технологический стек

  • Java21
  • Spring Boot
  • Lombok
  • Maven
  • Hibernate
  • Spring Data JPA
  • PostgreSQL
  • JUnit
  • Docker

Описание решения

1. Реализован следующий функционал:

  • Создание файла.

    На вход методу saveFile() отправляется JSON, включающий в себя файл (в формате base64) и его атрибуты (название - title, дата и время отправки - creation_date, краткое описание документа - description), на выходе метод возвращает id созданного файла.

  • Получение файла.

    На вход методу findById() отправляется id файла, на выходе метод возвращает JSON, включающий в себя файл (в формате base64) и его атрибуты (название - title, дата и время отправки - creation_date, краткое описание документа - description).

  • Получение всех файлов.

    Метод findAllFiles() возвращает JSON, включающий "первую страницу" (5 элементов/стр.) отсортированного по времени создания (от новых к старым) списка файлов (и их атрибутов).

2. Добавлен тест сервиса на случай запроса отсутствующего файла

3. Реализована контейнеризация приложения:

  • С помощью Dockerfile создан образ Spring Boot проекта на основе его .jar
  • Полученный образ загружен на dockerhub
  • Создан файл docker-compose.yaml с конфигурацией для совместного запуска контейнеров Spring Boot и PostgreSQL

Установка

У вас должны быть установлены:

  • terminal
  • docker
  • docker-compose

Инструкция по запуску приложения:

  1. Скачать файл docker-compose.yml
  2. В терминале перейти в директорию с docker-compose.yml
  3. Запустить контейнеры командой docker-compose up -d

Примеры тестовых запросов

1. Добавление файла со случайно сгенерированными значениями атрибутов и получение id добавленной записи.

изображение

pic4

2. Получение добавленного файла и его атрибутов по id.

изображение

3. Получение первой страницы списка всех файлов, отсортированных по времени создания, после добавления еще нескольких случайных записей.

изображение

About

Тестовое задание на CaseLab Java

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages