Тестовое задание.
Спроектировать(продумать формат и ограничения входящих/исходящих параметров) и реализовать REST API, вычисляющее частоту встречи символов по заданной строке. Результат должен быть отсортирован по убыванию количества вхождений символа в заданную строку.
Пример входной строки: “aaaaabcccc” Пример выходного результата: “a”: 5, “c”: 4, “b”: 1
Требования к решению: Java 8+ Spring boot 2+ Решение должно быть покрыто тестами У решения должна быть документация по запуску и формату входящих/исходящих параметров Код решения необходимо разместить в публичном Github репозитории.
В проекте присутствуют следующие зависимости:
- spring-boot-starter-web
- spring-boot-starter-validation
- lombok
- spring-boot-starter-test
Для решения задачи был создан класс StringParserController помеченный анотацией @RestController, он имет один единственный эндпоинт [post] /api/parse/symbolscount, метод вычисляет частоту символов в строке и возвращает string ответ типа “a”: 5, “c”: 4, “b”: 1 со статусом 200 в случае успеха.
Метод parseString принимает в себя обьект ParamString с полем string, обозначающее вводимую пользователем строку, указанную в post-запросе, а так же BindingResult для обработки ошибок.
После поднятия контекста приложения, сервер запустится на порту 8080, с помощью Postman отправим post-запрос на локальный сервер с url http://localhost:8080/api/parse/symbolscount, для получения ответа от сервера необходимо в body указать json строку с полем string:
После отправки запроса приходит необходимый ответ частоты встречаемых символов в отправленной строке в ввиде string со статусом 200
Если отправить на сервер пустое поле string в json-строке, сервер отправит json-ответ с ошибкой и статус код 400