Cервис YaCut — это сервис укорачивания ссылок.
На большинстве сайтов адреса страниц довольно длинные. Делиться такими длинными ссылками не всегда удобно, а иногда и вовсе невозможно. Удобнее использовать короткие ссылки. Например, ссылки http://yacut.ru/lesson и http://yacut.ru/12e07d воспринимаются лучше, чем https://practicum.yandex.ru/trainer/backend-developer/lesson/12e07d96-31f3-449f-abcf-e468b6a39061/.
Его назначение — ассоциировать длинную пользовательскую ссылку с короткой, которую предлагает сам пользователь или предоставляет сервис.
- Python 3.9
- Flask 2.0.2
- SQLAlchemy 1.4.29
- Клонировать репозиторий:
git clone https://github.com/magicbuka/yacut.git
- Создать виртуальное окружение:
python3 -m venv venv
- Активировать виртуальное окружение и установить зависимости из
requirements.txt
:
source venv/Scripts/activate
pip install -r requirements.txt
- Выполнить миграции:
flask db upgrade
- Запустить проект командой:
flask run
Сервис предоставляет 2 интерфейса:
- пользовательский интерфейс в браузере, по умолчанию доступен по адресу http://127.0.0.1:5000/;
- API.
Чтобы получить короткую ссылку через интерфейс браузера, введите исходную ссылку в поле Введите ссылку
на главной странице и нажмите кнопку Создать
. При необходимости можно ввести собственное имя короткой ссылки.
Ограничения:
- имя должно содержать только символы a-z, A-Z и цифры 0-9;
- длина строки не должна превышать 16 символов. Вводить свой вариант короткой ссылки не обязательно. В этом случае сервис сам сгенерирует случайное имя. После отправки формы на странице отобразится короткая ссылка, которую можно скопировать или перейти по ней.
Интерфейс API предоставляет следующие возможности:
- сгенерировать короткую ссылку для исходной - POST запрос на адрес
/api/id/
в теле запроса необходимо передать исходную ссылкуurl
и опционально собственное имя короткой ссылкиcustom_id
- получить исходную длинную ссылку по короткому имени - GET запрос на адрес
/api/id/{short_id}/
Разработчик проекта Baranova Anna