Skip to content

Alexshifter/yacut

Repository files navigation

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

Описание

Сервис позволяет создавать короткие ссылки на 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. Файл можно импортировать в онлайн-редактор 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

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Generated from yandex-praktikum/yacut