springboottest
spring boot test application for tinkoff
Задание
Имеем
Хранилище клиентских контактов и их заявок на банковские продукты. У контакта есть уникальный идентификатор CONTACT_ID и произвольное кол-во заявок на продукты. Заявки имеют идентификатор APPLICATION_ID, дату создания DT_CREATED и название продукта PRODUCT_NAME.
Необходимо
Написать приложение (REST-сервис), принимающий методом GET на вход идентификатор контакта. По идентификатору необходимо найти и вернуть в ответе последнюю (самую новую) заявку контакта. Ответ оформить в виде JSON с полями CONTACT_ID, APPLICATION_ID, DT_CREATED, PRODUCT_NAME.
Обязательные требования
- написать standalone-приложение, собранное в fat-JAR со всеми необходимыми библиотеками внутри (Java, Spring Boot)
- in-memory db с демонстрационными данными
- предусмотреть обработку ошибок – БД недоступна, некорректный запрос и пр.
- написать unit-тесты (JUnit + Spring Boot Test’ы с поднятием контекста приложения)
- сборка приложения с помощью Maven
Дополнительно (желательно)
- предоставить потребителю сервиса возможность выбора формата ответа – JSON / XML
- обрабатывать исключительные ситуации (например, контакт с указанным идентификатором не найден)
- подготовить описание сервиса при помощи Swagger (code-first или contract-first – не принципиально)