# Тестовое задание для Stilsoft Сервис для асинхронной обработки ссылок. Для настройки сервиса используются переменные окружения в файле `.env`. Экспортировать их в терминал не нужно, они считаются автоматически. Запуск осуществляется через `cargo run`. Реализованные фичи: - сервер на axum с API для управления ссылками (просмотр/загрузка/удаление, см. схему ниже) - in-memory хранилище на sled - из результата запроса ссылки достаётся количество символов - кэширование результатов (бессрочное) - удаление дубликатов ссылок - возможность указать размер пула обработчиков ссылок через URL_HANDLERS_POOL_SIZE - логирование и чтение настроек логирования через RUST_LOG Для отправки HTTP-запросов к сервису можно использовать дополнительную утилиту run.py: ``` ./run.py list ./run.py upload ./run.py del ``` Схема: Получение списка сохранённых ссылок: ``` Без фильтров: GET localhost:8000/url С фильтром: POST localhost:8000/url body: {"urls": [url1, url2]} ``` Загрузка ссылок: ``` POST localhost:8000/url/upload body: {"urls": [url1, url2]} ``` Удаление сохранённых ссылок: ``` Удаление всех ссылок: GET localhost:8000/url/delete Удаление заданных ссылок: POST localhost:8000/url body: {"urls": [url1, url2]} ```