Skip to content

Тестовое задание в альфа-банк

Notifications You must be signed in to change notification settings

IraZimareva/test-alfabank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание в альфа-банк

Стек технологий: Java8, H2 database, Hibernate, SpringBoot

Входные данные

При старте приложения создаются таблицы и автоматически заполняются данными в соответствии с переданным в виде параметра командной строки XML-файлом. Про формат ссылок можно почитать здесь.

Чтобы запустить проект, надо скомпилировать классы и в терминале прописать одну из следующих команд:

  • mvn spring-boot:run -Dspring-boot.run.arguments="file:src\main\resources\input.xml"
  • mvn spring-boot:run -Dspring-boot.run.arguments="url:file:///D:/ira/IdeaProject/test-alfabank/src/main/resources/input.xml"
  • mvn spring-boot:run -Dspring-boot.run.arguments="classpath:input.xml"

!!! Обратите внимание, что при указании пути через локальный url необходимо подать на вход абсолютный (полный) путь к файлу. В других случаях достаточно относительного пути.

http://localhost:8080/h2/ - консоль СУБД Н2. Здесь можно посмотреть таблицы и их содержимое. Все креды к бд описаны в файле src\main\resources\application.properties

Чтобы выгрузить данные из бд в файл, необходимо в файле application.properties изменить параметр spring.datasource.url property на файловый вывод (деактивировать строчку spring.datasource.url=jdbc:h2:file:./data/fileDB)

Работа веб-сервиса

После загрузки файла приложение работает, как REST-сервис, который возвращает id предметов заданного цвета (color), содержащиеся в ящике c заданным идентификатором (idBox) с учётом того, что в ящике может быть ещё ящик с предметами требуемого цвета.

Пример post-запроса POST /test HTTP/1.1
Host: localhost
Accept: application/json
Content-Type:application/json
Content-Length: 25
{"boxId":"1","color":"red"}


Формат ссылок

Ссылка имеет следующий формат: type:path, где:

  • type - тип ссылки
  • path - путь к файлу

Ссылка определяет источник, из которого загружаются данные в XML-формате.
Тип ссылки (type):

  • file (внешний файл)
  • classpath (файл в classpath)
  • url (URL)

Примеры:

  • file:input.xml
  • classpath:input.xml
  • url:file:/input.xml

Основные сущности приложения - предмет (Item) и коробка (Box):

  • Ящики могут быть пустыми или содержать предметы или другие ящики
  • У каждого ящика и предмета есть id
  • ID какого-либо предмета и какого-либо ящика могут совпадать, но в совокупности предметов они уникальны (как и в совокупности ящиков)
  • Предметы могут не иметь цвета
  • Предметы могут быть не в ящике
  • Вложенность ящиков может быть любой;

About

Тестовое задание в альфа-банк

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages