LegendarbIch / TestTask

тестовое задание

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TestTask

Тестовое задание.

Спроектировать(продумать формат и ограничения входящих/исходящих параметров) и реализовать REST API, вычисляющее частоту встречи символов по заданной строке. Результат должен быть отсортирован по убыванию количества вхождений символа в заданную строку.

Пример входной строки: “aaaaabcccc” Пример выходного результата: “a”: 5, “c”: 4, “b”: 1

Требования к решению: Java 8+ Spring boot 2+ Решение должно быть покрыто тестами У решения должна быть документация по запуску и формату входящих/исходящих параметров Код решения необходимо разместить в публичном Github репозитории.

Документация решения по запуску и формату входящих/исходящих параметров

В проекте присутствуют следующие зависимости:

  1. spring-boot-starter-web
  2. spring-boot-starter-validation
  3. lombok
  4. spring-boot-starter-test

Снимок экрана 2023-09-12 201026

Описание контроллера:

Для решения задачи был создан класс StringParserController помеченный анотацией @RestController, он имет один единственный эндпоинт [post] /api/parse/symbolscount, метод вычисляет частоту символов в строке и возвращает string ответ типа “a”: 5, “c”: 4, “b”: 1 со статусом 200 в случае успеха.

image

Метод parseString принимает в себя обьект ParamString с полем string, обозначающее вводимую пользователем строку, указанную в post-запросе, а так же BindingResult для обработки ошибок.

image

Получение требуемого ответа от сервера с помощью Postman

После поднятия контекста приложения, сервер запустится на порту 8080, с помощью Postman отправим post-запрос на локальный сервер с url http://localhost:8080/api/parse/symbolscount, для получения ответа от сервера необходимо в body указать json строку с полем string:

image

После отправки запроса приходит необходимый ответ частоты встречаемых символов в отправленной строке в ввиде string со статусом 200

image

Если отправить на сервер пустое поле string в json-строке, сервер отправит json-ответ с ошибкой и статус код 400

image

About

тестовое задание


Languages

Language:Java 100.0%