Skip to content

Recwayer/TestTaskRestAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

Требования к решению:

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

Документация по запуску

Документация по запуску через командную строку

Требования к окружению

  • Java 8 или выше
  • Maven (для сборки проекта)

Инструкции по установке

  1. Склонируйте репозиторий: git clone https://github.com/Recwayer/TestTaskRestAPI
  2. Перейдите в каталог проекта: cd TestTaskRestAPI
  3. Соберите приложение: mvn clean install

Сборка и запуск

  • Соберите и запустите приложение: java -jar target/testtaskrestapi-1.0.jar

Пример запроса

  • Для отправки запроса к API, используйте HTTP-клиент, такой как Postman
  • Запрос POST: POST localhost:8088/calculateFrequency image

Документация по запуску в IntelliJ IDEA

Требования к окружению

  • Java 8 или выше
  • IntelliJ IDEA (последняя версия)

Инструкции по установке

  1. Клонирование репозитория:
  • Откройте IntelliJ IDEA.
  • Нажмите Get from Version Control (Получить из контроля версий) на экране приветствия или перейдите в меню File (Файл) > New (Новый) > Project from Version Control (Проект из системы контроля версий).
  • Введите URL репозитория: https://github.com/Recwayer/TestTaskRestAPI
  • Укажите путь к каталогу, где вы хотите сохранить проект, и нажмите Clone
  1. Открытие проекта:
  • После завершения клонирования, IntelliJ IDEA автоматически откроет проект.
  1. Импорт проекта:
  • IntelliJ IDEA автоматически обнаружит, что это проект Maven. Если необходимо, подтвердите импорт и настройку проекта.

Запуск приложения

  1. Найдите класс TestTaskRestApiApplication:
  • Откройте структуру проекта в IntelliJ IDEA (обычно находится в левой части окна).
  • Раскройте каталог "src" > "main" > "java".
  • Найдите класс TestTaskRestApiApplication.
  1. Запустите приложение:
  • Щелкните правой кнопкой мыши по классу с методом main .
  • Выберите Run (Запустить) из контекстного меню.
  1. Ожидайте запуска:
  • Подождите, пока приложение успешно запустится. Вы увидите логи в консоли IntelliJ IDEA.
  1. Тестируйте API:
  • После успешного запуска приложения, вы можете протестировать API, отправляя запросы с помощью HTTP-клиента, такого как Postman.

REST API для вычисления частоты встречи символов

Это REST API позволяет вычислить частоту встречи символов в заданной строке. Результат сортируется в порядке убывания количества вхождений символов в строку.

Эндпоинты API

/calculateFrequency

  • Метод: POST
  • Описание: Вычисляет частоту встречи символов в заданной строке.
  • Входящие параметры:
    • input (строка): Строка для анализа частоты символов.
  • Исходящие параметры:
    • JSON-объект с частотой символов.
  • Возможные ошибки:
    • 400 Bad Request: Если строка пуста, содержит более 10 000 символов или содержит символы новой строки (\n) или возврата каретки (\r).

Формат входящих параметров

  • input (строка): Строка, для которой нужно вычислить частоту встречи символов.
  • Допустимая длина строки: от 1 до 10 000 символов.

Note

image

  • Запрос должен состоять из одной строки.

Note

image

Формат исходящих параметров

  • JSON-объект, содержащий символы и их частоту встречи в строке. Результат отсортирован по убыванию частоты вхождений.

Warning

Если использовать специальные символы Java - '\ ','" ' и т.д., то символы будут содержать дополнительно '\ '. image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages