Skip to content

Latest commit

 

History

History
72 lines (49 loc) · 3.64 KB

README.md

File metadata and controls

72 lines (49 loc) · 3.64 KB

YaCut

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

Cервис YaCut — это сервис укорачивания ссылок.

На большинстве сайтов адреса страниц довольно длинные. Делиться такими длинными ссылками не всегда удобно, а иногда и вовсе невозможно. Удобнее использовать короткие ссылки. Например, ссылки http://yacut.ru/lesson и http://yacut.ru/12e07d воспринимаются лучше, чем https://practicum.yandex.ru/trainer/backend-developer/lesson/12e07d96-31f3-449f-abcf-e468b6a39061/.

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

Используемые технологии

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

  1. Клонировать репозиторий:
git clone https://github.com/magicbuka/yacut.git
  1. Создать виртуальное окружение:
python3 -m venv venv
  1. Активировать виртуальное окружение и установить зависимости из requirements.txt:
source venv/Scripts/activate
pip install -r requirements.txt
  1. Выполнить миграции:
flask db upgrade
  1. Запустить проект командой:
flask run

Как работать с проектом:

Сервис предоставляет 2 интерфейса:

  • пользовательский интерфейс в браузере, по умолчанию доступен по адресу http://127.0.0.1:5000/;
  • API.

Чтобы получить короткую ссылку через интерфейс браузера, введите исходную ссылку в поле Введите ссылку на главной странице и нажмите кнопку Создать. При необходимости можно ввести собственное имя короткой ссылки. Ограничения:

  • имя должно содержать только символы a-z, A-Z и цифры 0-9;
  • длина строки не должна превышать 16 символов. Вводить свой вариант короткой ссылки не обязательно. В этом случае сервис сам сгенерирует случайное имя. После отправки формы на странице отобразится короткая ссылка, которую можно скопировать или перейти по ней.

Интерфейс API предоставляет следующие возможности:

  • сгенерировать короткую ссылку для исходной - POST запрос на адрес /api/id/ в теле запроса необходимо передать исходную ссылку url и опционально собственное имя короткой ссылки custom_id
  • получить исходную длинную ссылку по короткому имени - GET запрос на адрес /api/id/{short_id}/

Разработчик проекта Baranova Anna