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