https://github.com/lmashik/yacut
Сервис для укорачивания ссылок
https://github.com/lmashik/yacut
flask jinja2 python37 sqlalchemy wtf
Last synced: 4 months ago
JSON representation
Сервис для укорачивания ссылок
- Host: GitHub
- URL: https://github.com/lmashik/yacut
- Owner: lmashik
- Created: 2023-07-05T14:28:02.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-11-08T21:06:50.000Z (over 2 years ago)
- Last Synced: 2025-02-27T17:23:40.133Z (about 1 year ago)
- Topics: flask, jinja2, python37, sqlalchemy, wtf
- Language: Python
- Homepage:
- Size: 92.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Проект "Укоротитель ссылок YaCut"
----------------------------------------
## Описание
Данный сервис поможет вам укоротить длинные ссылки путем создания для них
идентификатора по умолчанию (если не указан вами) или выбора собственного,
из которого будет сделана удобная короткая ссылка. При переходе по данной
короткой ссылке вы попадете на страницу, на которую ведет соответствующая
длинная ссылка.
----------------------------------------
## Используемые технологии
- Python 3.7
- Flask (микрофреймворк для создания проектов на языке Python)
- SQLAlchemy (библиотека для работы с реляционными СУБД с применением технологии ORM)
- WTF (библиотека для работы с формами)
- Jinja2 (шаблонизатор)
----------------------------------------
## Установка
1. Клонируйте репозиторий
```bash
git clone https://github.com/lmashik/yacut.git
```
2. Создайте и активируйте виртуальное окружение
```bash
python3.7 -m venv venv
```
* Если у вас Linux/macOS
```bash
source venv/bin/activate
```
* Если у вас windows
```bash
source venv/scripts/activate
```
3. Обновите pip до последней версии
```bash
python3 -m pip install --upgrade pip
```
4. Установите зависимости из файла requirements.txt
```bash
pip install -r requirements.txt
```
----------------------------------------
## Запуск
В директории проекта создайте файл .env и заполните его по образцу
.env.example
Примените миграции
```bash
flask db upgrade
```
Запустите проект
```bash
flask run
```
----------------------------------------
## API
Сервис имеет API, так что возможна интеграция вашего сервиса с Yacut.
### Формат запроса
Запрос осуществляется посредством протокола HTTP 1.1.
### Формат ответа
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8,
содержимое зависит от запроса.
### Ресурсы
Yacut имеет один ресурс: пары "длинная ссылка - короткий идентификатор".
Для создания нового короткого идентификатора (custom_id)
для длинной ссылки (url), выполните POST запрос на http://127.0.0.1:5000/api/id/,
пример которого ниже:
```bash
curl -X POST http://127.0.0.1:5000/api/id/\
-d "url=url"\
-d "custom_id=id"\
```
Пример ответа в случае успешного выполнения
_HTTP 1.1 201 CREATED_
```json
{
"short_link": "short_link",
"url": "url"
}
```
Для получения длинной ссылки, соответствующей короткому идентификатору,
выполните GET-запрос на адрес http://127.0.0.1:5000/api/id//, пример
которого ниже:
```bash
curl -X GET http://127.0.0.1:5000/api/id//\
```
Пример ответа в случае успешного выполнения
_HTTP 1.1 200 OK_
```json
{
"url": "url"
}
```
----------------------------------------
## Автор проекта
Лапикова Мария Дмитриевна
mashik_p@mail.ru