Skip to content

stolbov-stanislav/rest-api-short-url

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requirements

Описание задачи: Необходимо разработать REST API для сервиса сокращения URL.

Обязательный функционал:

  1. Создание короткой ссылки:

POST /shorten: принимает JSON с полем originalUrl (обязательное) и возвращает укороченный URL. Укороченный URL должен быть уникальным (можно использовать случайный хэш длиной 6 символов).

Переадресация: GET /{shortUrl}: переадресует пользователя на оригинальный URL. Если ссылка не найдена, возвращает ошибку 404.

  1. Получение информации о ссылке:

GET /info/{shortUrl}: возвращает информацию о сокращённой ссылке: originalUrl (оригинальная ссылка), createdAt (дата создания), clickCount (количество переходов по короткой ссылке).

  1. Удаление короткой ссылки:

DELETE /delete/{shortUrl}: удаляет короткую ссылку.

Дополнительный функционал (по желанию):

  1. Время жизни ссылки:

При создании ссылки пользователь может указать срок её действия (expiresAt). Если срок истёк, редирект и запросы к этой ссылке возвращают 410 Gone.

  1. Аналитика переходов:

Добавить таблицу или массив для хранения данных о переходах: Сохранить дату и IP-адрес при каждом переходе по короткой ссылке.

Добавить метод: GET /analytics/{shortUrl}: возвращает количество переходов по ссылке и последние 5 IP-адресов.

  1. Добавить поддержку пользовательских алиасов: POST /shorten: принимает необязательное поле alias (например, вместо случайного хэша можно сделать short.url/my-custom-alias). Проверять уникальность алиаса. Ограничение длины alias до 20 символов.

  2. Docker (для запуска):

Настроить Dockerfile и docker-compose, чтобы проект можно было запустить одной командой.

  1. Тесты (1-2 на выбор):

Проверить: Создание ссылки с уникальным alias. Переадресацию на оригинальный URL.

  1. UI для тестирования (совсем упрощённое):

В проект можно добавить мини-фронтенд с формой: Поле для ввода оригинального URL. Кнопка для генерации короткой ссылки и отображения результата.

About

Simple REST API for URL shortening service.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published