Сервис позволяет создавать короткие ссылки на URL-адреса в Интернете и ассоциировать оригинальную ссылку с короткой. Вариант короткой ссылки предлагает сам пользователь или предоставляет сервис.
Клонировать репозиторий и перейти в него в командной строке:
Клонируйте репозиторий и перейдите в директорию проекта:
git clone git@github.com:Alexshifter/yacut.git
cd yacut
Cоздайте и активируйте виртуальное окружение:
python -m venv venv
source venv/scripts/activate
Обновите менеджер пакетов и установите зависимости из файла requirements.txt:
python -m pip install --upgrade pip
pip install -r requirements.txt
Создайте файл с переменными окружения .env. Укажите в файле значения локальных переменных, представленных в образце .env.example
touch .env
Примените миграции
flask db upgrade
Запустите проект
flask run
Проект доступен по адресу:
127.0.0.1:5000
Также у проекта есть API. Доступно два эндпоинта:
/api/id/— POST-запрос на создание новой короткой ссылки;/api/id/<short_id>/— GET-запрос на получение оригинальной ссылки по указанному короткому идентификатору. Документация API, варианты ответов и ошибок приведены в спецификации openapi.yml; спецификация есть в репозитории yacut. Файл можно импортировать в онлайн-редактор swaggerhttps://editor.swagger.io/
-
Эндпоинт:
/api/id/- Метод:
POST - Описание: Получение новой короткой ссылки
- Тело запроса:
url(required): Оригинальная ссылкаcustom_id(optional): Вариант короткой ссылки
{ "url": "https://google.com", "custom_id": "7crWq10" }- Ответ:
{ "short_link": "http://127.0.0.1:5000/7crWq10", "url": "https://google.com" } - Метод:
-
Эндпоинт:
/api/id/<short_id>- Метод:
GET - Описание: Получение оригинальной ссылки по короткому идентификатору.
- Запрос :
GET 127.0.0.1:5000/api/id/7crWq10
- Ответ:
{ "url": "https://google.com" } - Метод:
Python 3.9.13, Flask 3.0.3, SQLAlchemy 2.0.21, Alembic 1.12.0, Jinja2 3.1.4, WTForms 3.0.1