32 lines
2 KiB
Markdown
32 lines
2 KiB
Markdown
# Сокращатель ссылок
|
||
|
||
Данный проект предоставляет `API` для сокращения ссылок и отслеживания переходов по
|
||
этим ссылкам.
|
||
|
||
Для работы данного сервиса необходима готовя БД `PostgreSQL`(продакшн и тестовая) и `Redis`.
|
||
|
||
|
||
## Начало работы
|
||
|
||
В корне проекта создаём файл `.env` и заполняем его по шаблону из файла `.env_template`. В поле `MODE` указываем `DEV`, а в поле `SHORTENER_HOST` - домен сервера, где будет хоститься сервис.
|
||
|
||
Собираем докер образ
|
||
```shell
|
||
docker compose build
|
||
```
|
||
|
||
Запускаем докер контейнер
|
||
```shell
|
||
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>]}`.
|