Skip to content

vasilekx/yacut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Описание

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

Применяемые технологи

Python Flask

Расширения для Flask:

flask-sqlalchemy Flask-wtf Flask-Migrate

Запуск сервиса

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

git clone git@github.com:vasilekx/yacut.git
cd yacut

Создать файл .env

  • Если у вас Linux/MacOS

    touch .env
  • Если у вас Windows

    type nul > .env

Заполнить файл .env:

FLASK_APP=opinions_app
FLASK_ENV=development
DATABASE_URI=sqlite:///db.sqlite3
SECRET_KEY=YOUR_SECRET_KEY

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

Создать базу данных:

flask shell
from yacut import db; db.create_all(); exit()

Выполнить запус сервиса:

flask run

Доступ к сервису

http://127.0.0.1:5000/

Снимок экрана 2022-12-27 в 14 16 30

Доступ к API сервиса

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

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

Создание новой короткой ссылки:

POST-запрос:

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

Тело запроса:

{
  "url": "https://flask.palletsprojects.com/en/latest/",
  "custom_id": "myshorturl"
}

Ответ:

{
    "short_link": "http://127.0.0.1:5000/myshorturl",
    "url": "https://flask.palletsprojects.com/en/latest/"
}

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

GET-запрос:

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

Ответ:

{
    "url": "https://flask.palletsprojects.com/en/latest/"
}

Будущая доработка:

  • Реализовать валидацию URL.

Автор

Владислав Василенко