Используя 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:
Наименования и сокращенные наименования субъектов РФ были взяты из Правил вида спорта "стрельба из арбалета" (утв. приказом Минспорта России от 22.02.2019 N 157), Приложения N 1. Субъекты Российской Федерации, сокращенные названия, принятые для протоколов соревнований
В качестве идентификаторов регионов были использованы коды ГИБДД
На данный момент реализовано:
- Весь требуемый в задании функционал
- Автогенерация документации
- Валидация входных данных
- Юнит-тестирование класса контроллера
- Интеграционное тестирование приложения
- Интеграция репозитория Github с heroku.com и автоматический деплой приложения на данную платформу
В связи с идущей в период выполнения задания сессией (экзамены каждые 1-2 дня) были запланированы, но не были реализованы:
- Юнит-тестирование класса сервиса
- Замена простого REST API на Spring HATEOAS
- Схемы ответов сервера на некорректные запросы пользователя для документации
- Обработка исключительных ситуаций, не зависящих от действий пользователя (например, разрыв соединения с БД)
- Конфигурация для создания Docker-контейнера из приложения
- Конфигурация для Github CI
Планируется реализация перечисленных пунктов в будущем