Skip to content
generated from yandex-praktikum/yacut

🔗 YaCut — сервис для укорачивания ссылок. Преобразует длинные URL в короткие, предлагая пользовательский или автоматический вариант. 🚀 Быстро, удобно, эффективно! 🌐✨

Notifications You must be signed in to change notification settings

meteopavel/YaCut

Repository files navigation

Проект YaCut

Проект YaCut — это сервис укорачивания ссылок. Его назначение — ассоциировать длинную пользовательскую ссылку с короткой, которую предлагает сам пользователь или предоставляет сервис.

Основные используемые инструменты

  • Python 3.9.10
  • Flask-Migrate 3.1.0
  • Flask-WTF 1.0.0
  • SQLAlchemy 1.4.29
  • python-dotenv 0.19.2

Развёртывание проекта на локальном компьютере

Клонировать репозиторий и перейти в него в командной строке:

git clone git@github.com:meteopavel/yacut.git

Cоздать и активировать виртуальное окружение:

python3 -m venv venv
linux: source env/bin/activate
windows: source venv/Scripts/activate

Установить зависимости из файла requirements.txt:

python3 -m pip install --upgrade pip
pip install -r requirements.txt

Создать файл переменных окружения .env:

touch .env

И наполнить его переменными по примеру файла .env.example

Использование

flask db upgrade
flask run

Команда запустит сервер flask. После этого ресурс станет доступен по адресу http://127.0.0.1:5000. Сервис можно использовать как через браузер, так и через API:

/api/id/ — POST-запрос на создание новой короткой ссылки;

Пример запроса:

{
  "url": "string",
  "custom_id": "string"
}

Поле "custom_id" является опциональным. При его отсутствии, или если оно будет пустым, короткая ссылка будет сгенерирована автоматически. Ожидаемый ответ:

{
  "url": "string",
  "short_link": "string"
}

/api/id/<short_id>/ — GET-запрос на получение оригинальной ссылки по указанному короткому идентификатору.

Ожидаемый ответ:

{
  "url": "string"
}

Полная документация доступна в файле openapi.yml

Автор

Павел Найденов

About

🔗 YaCut — сервис для укорачивания ссылок. Преобразует длинные URL в короткие, предлагая пользовательский или автоматический вариант. 🚀 Быстро, удобно, эффективно! 🌐✨

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published