Skip to content

Bromles/testTaskRegionDirectory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание, справочник регионов

Формулировка задания

Используя Spring Boot, разработать приложение, реализующее справочник регионов (свойства: идентификатор, наименование, сокращенное наименование).

Приложение должно предоставлять REST API на чтение и изменение справочника.

Справочник должен храниться в БД, в качестве ORM необходимо использовать MyBatis.

Желательно использование Spring Cache.

Использовать встроенную БД и контейнер приложения.

Используемые языки, библиотеки, фреймворки и технологии

  • Java SE 11
  • Spring Boot
    • Web
    • Cache
    • Test
    • Validation
  • MyBatis
  • H2 database
  • JUnit 5
  • Mockito
  • SpringDoc
  • Swagger UI

Ссылки на работающее приложение и документацию

Приложение доступно по ссылке bromles-task-region-directory.herokuapp.com. При обращении по указанному адресу открывается страница документации API с описанием доступных эндпоинтов, их адресами, параметрами и примерами ответов от сервера.

Примечание: При отсутствии обращений в течение значительного периода времени Heroku отправляет приложение в сон, что может привести к провалу первого запроса. В таком случае достаточно продублировать запрос (в случае обращения через браузер — обновить страницу), чтобы его получило уже пробужденное приложение

Доступна отправка запросов в приложение через Postman:

Run in Postman

Источник данных для заполнения справочника

Наименования и сокращенные наименования субъектов РФ были взяты из Правил вида спорта "стрельба из арбалета" (утв. приказом Минспорта России от 22.02.2019 N 157), Приложения N 1. Субъекты Российской Федерации, сокращенные названия, принятые для протоколов соревнований

В качестве идентификаторов регионов были использованы коды ГИБДД

Степень готовности приложения

На данный момент реализовано:

  • Весь требуемый в задании функционал
  • Автогенерация документации
  • Валидация входных данных
  • Юнит-тестирование класса контроллера
  • Интеграционное тестирование приложения
  • Интеграция репозитория Github с heroku.com и автоматический деплой приложения на данную платформу

В связи с идущей в период выполнения задания сессией (экзамены каждые 1-2 дня) были запланированы, но не были реализованы:

  • Юнит-тестирование класса сервиса
  • Замена простого REST API на Spring HATEOAS
  • Схемы ответов сервера на некорректные запросы пользователя для документации
  • Обработка исключительных ситуаций, не зависящих от действий пользователя (например, разрыв соединения с БД)
  • Конфигурация для создания Docker-контейнера из приложения
  • Конфигурация для Github CI

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