link_shortener/README.md
2024-04-05 16:23:27 +05:00

2 KiB
Raw Blame History

Сокращатель ссылок

Данный проект предоставляет API для сокращения ссылок и отслеживания переходов по этим ссылкам.

Для работы данного сервиса необходима готовя БД PostgreSQL(продакшн и тестовая) и Redis.

Начало работы

В корне проекта создаём файл .env и заполняем его по шаблону из файла .env_template. В поле MODE указываем DEV, а в поле SHORTENER_HOST - домен сервера, где будет хоститься сервис.

Собираем докер образ

docker compose build

Запускаем докер контейнер

docker compose up

По умолчанию сервис использует порт 8000 в контейнере и порт 8000 вне контейнера.

Работа с API

Для получения сокращённой ссылки необходимо отправить POST запрос на эндпоинт /zip_url. Он вернёт новую ссылку в JSON объекте формата {"new_url_path": <URL>}.

При обращении по этому адресу будет выполнен редирект на оригинальный URL и в редис добавится таймстемп с указанием количества секунд от начала эпохи, когда произошёл редирект.

Получить данные счётчика редиректов можно при обращении к эндпоинту /stats/<URL_ID>, где URL_ID это айдишник, который указан в укороченном URL. Этот эндпоинт возвращает JSON объект формата {"visit_times": <redirected_times>, "timestamps": [<redirect_timestamp>]}.