Данный репозиторий содержит сервис сокращения URL, реализованный на языке Go. Он позволяет пользователям создавать сокращенные ссылки, отслеживать статистику их использования и управлять существующими сокращенными URL через удобный API. Сервис обладает продуманной архитектурой и включает поддержку базы данных, настройку срока действия ссылок и документацию Swagger(OpneAPI)(OpenAPI) для удобства интеграции.
- Сокращение URL: Генерирует уникальные короткие ссылки для длинных URL, предоставленных пользователем. Обрабатывает дублирующиеся запросы, чтобы избежать создания избыточных записей.
- Срок действия ссылок: Сокращенные ссылки имеют настраиваемый срок действия (например, 30 дней), после которого они автоматически становятся недействительными.
- Перенаправление по URL: Перенаправляет пользователя с короткой ссылки на оригинальный длинный URL.
- Управление URL:
- Просмотр списка ссылок: Позволяет просматривать все созданные пользователем ссылки.
- Удаление ссылки: Удаляет указанную короткую ссылку.
- Статистика: Отслеживает количество переходов и дату последнего использования для каждой короткой ссылки.
- Обработка ошибок: Включает проверку и обработку ошибок для случаев некорректного ввода URL или несуществующих ссылок.
- Документация Swagger(OpneAPI): Предоставляет интерактивную документацию API для удобства тестирования и интеграции.
- Эндпоинт:
POST /shortener - Тело запроса:
{ "url": "https://example.com" } - Описание: Принимает JSON с ключом
url, содержащим длинный URL. Возвращает идентификатор для сокращенной ссылки. - Валидация: Проверяет URL на валидность и непустое значение.
- Ответ:
{ "short-url" }
- Эндпоинт:
GET /shortener - Описание: Возвращает список всех созданных пользователем коротких ссылок.
- Эндпоинт:
GET /{link} - Описание: Перенаправляет на оригинальный длинный URL при доступе по короткой ссылке.
- Обработка ошибок: Возвращает 404, если ссылка не найдена или срок её действия истек.
- Эндпоинт:
DELETE /{link} - Описание: Удаляет указанную короткую ссылку.
- Эндпоинт:
GET /stats/{link} - Описание: Предоставляет статистику для указанной короткой ссылки, включая общее количество переходов и дату последнего использования.
- Ответ:
{ "click_counts": 5, "last_entered_at": "2023-11-09T14:48:00Z" }
Для доступа к документации Swagger(OpneAPI) выполните ряд комманд:
cd docsЕсли вы в первый раз запускаете UI, то необходимо установить зависимости:
npm i
Для запуска UI
npm startПодробнее вы можете узнать тут -> README