Учебный проект для практики работы во фреймворке Flask.
Yacut - это сервис укорачивания ссылок, который ассоциирует длинную пользовательскую ссылку с короткой. Короткую ссылку может предложить сам пользователь, или же сервис самостоятельно её сгенерирует.
Иными словами, при помощи данного сервиса пользователь может превратить длинную и неудобную ссылку наподобие "https://flask.palletsprojects.com/en/2.2.x/changes/#version-2-0-0" в короткую - "http://localhost/ver2". После создания короткой ссылки при переходе по ней происходит переадресация на исходный адрес.
Помимо работы в браузере с графическим интерфейсом всем желающим доступен API, дублирующий весь функционал сервиса.
- Склонируйте репозиторий:
git clone [email protected]:AbbadonAA/yacut.git
- Активируйте venv и установите зависимости:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- Создайте в корневой директории файл .env со следующим наполнением:
FLASK_APP=yacut
FLASK_ENV=development или production
DATABASE_URI=sqlite:///db.sqlite3
SECRET_KEY=<ваш_секретный_ключ>
- Проект готов к запуску.
Для локального запуска выполните команду:
flask run
Сервис будет запущен и доступен по следующим адресам:
-
http://localhost/ - главная страница сервиса;
- Если не заполнить поле для короткой ссылки, она будет сгенерирована автоматически.
- Короткая ссылка должна быть не длиннее 16 символов (цифры и латинские буквы в любом регистре).
-
http://localhost/api/id/ - эндпоинт, принимающий POST-запросы;
- Схема POST-запроса:
{ "url": "string", "custom_id": "string" * (необязательное поле) }
- Схема ответа на POST-запрос:
{ "url": "string", "short_link": "string" }
- Схема POST-запроса:
-
http://localhost/api/id/short_id/ - эндпоинт, принимающий GET-запросы.
В адресе вместо <short_id> должна быть указана введённая или сгенерированная короткая ссылка.
- Схема ответа на GET-запрос:
{ "url": "string" }
Полная спецификация API доступна в репозитории - файл openapi.yml
- Схема ответа на GET-запрос:
Pushkarev Anton