Skip to content

Сервис укорачивания ссылок

Notifications You must be signed in to change notification settings

Alexshifter/yacut

Repository files navigation

YaCut - сервис укорачивания ссылок

Описание

Сервис позволяет создавать короткие ссылки на URL-адреса в Интернете и ассоциировать оригинальную ссылку с короткой. Вариант короткой ссылки предлагает сам пользователь или предоставляет сервис.

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

Установка и запуск

Клонируйте репозиторий и перейдите в директорию проекта:

git clone [email protected]: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. Файл можно импортировать в онлайн-редактор swagger https://editor.swagger.io/

Примеры запросов к API

  • Эндпоинт: /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

Автор

Alexey Pakaev

About

Сервис укорачивания ссылок

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published