Skip to content

elenashovtyuk/yacut

Repository files navigation

YaCut

Описание проекта

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

Технологии и библиотеки

  • Python — высокоуровневый язык программирования;
  • Flask - фреймворк для бэкенд-разработки
  • Flask-WTF - расширение для работы с формами,адаптированное под Flask
  • SQLAlchemy - библиотека для работы с реляционными СУБД с применением технологии ORM
  • Flask-SQLAlchemy - расширение для Flask, для подключения и спользования SQLAlchemy совместно с Flask

Как запустить проект

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

git clone https://github.com/elenashovtyuk/yacut.git
cd yacut

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

python3 -m venv venv
  • Если у вас Linux/macOS

    source venv/bin/activate
    
  • Если у вас windows

    source venv/scripts/activate
    

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

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

Cоздать в корневой директории файл .env cо следующими конфигурационными ключами

FLASK_APP=<название приложения>
FLASK_ENV=development или production
DATABASE_URI=sqlite:///db.sqlite3
SECRET_KEY=<ваш_секретный_ключ>

Запуск проекта

flask run

web интерфейс будет доступен по адресу

  • Если не заполнить поле для короткой ссылки, она будет сгенерирована автоматически.
  • Короткая ссылка должна быть не длиннее 16 символов (цифры и латинские буквы в любом регистре).

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

POST-запрос на создание новой короткой ссылки

http://127.0.0.1:5000/api/id/

Схема запроса

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

Формат ответа

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

GET-запрос на получение оригинальной длинной ссылки по короткому идентификатору

http://127.0.0.1:5000/api/id/<short_id>/

Формат ответа

{
    "url": "string"
}

Спецификация API доступна в репозитории, в файле openapi.yml

Автор

Шовтюк Елена