Его назначение — ассоциировать длинную пользовательскую ссылку с короткой, которую предлагает сам пользователь или предоставляет сервис.
- генерация коротких ссылок и связь их с исходными длинными ссылками,
- переадресация на исходный адрес при обращении к коротким ссылкам.
- обязательного для длинной исходной ссылки;
- необязательного для пользовательского варианта короткой ссылки.
Пользовательский вариант короткой ссылки не должен превышать 16 символов. Если пользователь предложит вариант короткой ссылки, который уже занят, то уведомление сообщит об этом. Существующая в базе ссылка остается неизменной. Если пользователь не заполнит поле со своим вариантом короткой ссылки, то сервис сгенерирует её автоматически. Формат для ссылки по умолчанию — шесть случайных символов, в качестве в которых использованы:
- большие латинские буквы,
- маленькие латинские буквы,
- цифры в диапазоне от 0 до 9.
Автоматически сгенерированная короткая ссылка добавляется в базу данных, но только если в ней уже нет такого же идентификатора. В противном случае генерируется идентификатор заново.
Примеры запросов к API, варианты ответов и ошибок приведены в спецификации openapi.yml
Владимир Васильев | chem1sto
- Python 3.10.6
- SQLAlchemy 1.4.29
- Flask 2.0.2
- Flask-migrate 3.1.0
- Alembic 1.7.5
- Flask-wtf 1.0.0
- Flask-sqlalchemy 2.5.1
- Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:chem1sto/yacut.git
cd yacut
- Создать и активировать виртуальное окружение:
python3 -m venv venv
-
Если у вас Linux/MacOS
source venv/bin/activate
- Если у вас windows
source venv/scripts/activate
- Если у вас windows
-
- Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
- Создайте БД по сценарию migrations/ и запустите приложение:
flask db upgrade && flask run
Сервер Flask запустит приложение по адресу http://127.0.0.1:5000.