/rest/counter
- Нужно написать простую реализацию счетчика. Необходимо добавить команды по увеличению и уменьшению счетчика. Хранить счетчик в Redis.
Доступные команды:
-
POST /rest/counter/add/$i — команда для увеличения счетчика, где $i — это целое значение, на которое следует увеличить счетчик
-
POST /rest/counter/sub/$i — команда для уменьшения счетчика, где $i — это целое значение, на которое следует уменьшить счетчик
-
GET /rest/counter/val — команда для получения текущего значения счетчика Для всех команд необходимо написать юнит тесты в отдельном файле.
-
Усложненный вариант задания. Написать юнит тесты без поднятия Redis сервера.
-
/rest/substr
- Нужно найти максимальную подстроку, не содержащую повторяющихся символов. Входная строка состоит из латинских букв (нижний и верхний регистр) и цифр. Доступные команды:
- POST /rest/substr/find — команда для нахождения заданной подстроки. Строка находится в теле HTTP запроса.
- Для всех команд необходимо написать юнит тесты в отдельном файле.
/rest/self
- Необходимо реализовать поиск всех идентификаторов во всех исходных кодах реализуемого REST API сервера, которые содержат данную подстроку. Доступные команды:
- GET /rest/self/find/$str — команда для поиска идентификаторов. Возвращает список всех идентификаторов, удовлетворяющих заданному условию. Для всех команд необходимо написать юнит тесты в отдельном файле.
/rest/hash
- Необходимо реализовать подсчет следующей хэш функции:
- Взять CRC64 хэш от входной строки
- Взять текущий timestamp с точностью до наносекунд
- Сделать логическое «И» текущего timestamp и текущего хэша
- Повторить шаги 2-3 в течение минуты с интервалом в 5 секунд
- Посчитать число единиц в двоичной записи полученного числа. Количество единиц и будет являться «хэшом»
- Более того нельзя заставлять клиента REST API сервера ждать. Поэтому у клиента есть возможность дать заявку на расчет данного хэша.
- POST /rest/hash/calc — команда для подачи заявки на расчет хэша. Данные для хэширования передаются в HTTP теле запроса. В ответ приходит уникальный идентификатор заявки.
- GET /rest/hash/result/$id — команда для получения результата для заявки с идентификатором $id. Команда возвращает «PENDING», если результат еще не посчитан и сам хэш, если подсчет уже произошел
- Написать свою реализацию функции, извлекающей текущий timestamp, с учетом того, что в один момент времени ее может вызывать только один исполнитель.
- Ограничить количество одновременно вычисляющихся хешей некой константой N
/rest/email
Необходимо реализовать поиск строки следующего формата: «Email:__$email»
- Где вместо «__» может быть любое количество пробельных символов (в том числе и переносов строк), а вместо $email должна быть строка, похожая на настоящий email Доступные команды:
- POST /rest/email/check — команда, которая анализирует тело HTTP запроса и выдает все найденные email адреса.
- Усложненное задание: написать аналогичный функционал, который вместо email адресов будет искать последовательность цифр, которая является корректным ИИН.