/springboottest

spring boot test application for tinkoff

Primary LanguageJava

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 – не принципиально)