Ecmek / api_final_yatube

πŸ‘₯ REST API для сСрвиса Yatube.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ YATUBE

Π‘ΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ

ОписаниС

Благодаря этому ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ посты, ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎΠ΄ постами ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ².

Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Python, Django, DRF, DRF-simplejwt

Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² dev-Ρ€Π΅ΠΆΠΈΠΌΠ΅

  • ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π½Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:
  • УстановитС ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅:
Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Windows:
python -m venv venv
source venv/Scripts/activate
python -m pip install --upgrade pip
  • УстановитС зависимости ΠΈΠ· Ρ„Π°ΠΉΠ»Π° requirements.txt
pip install -r requirements.txt
  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с Ρ„Π°ΠΉΠ»ΠΎΠΌ manage.py Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:
python manage.py migrate

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ супСр-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

python manage.py createsuperuser

Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

python manage.py runserver

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния.

api/v1/posts/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка всСх постов
api/v1/posts/{id}/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ поста
api/v1/groups/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка всСх Π³Ρ€ΡƒΠΏΠΏ
api/v1/groups/{id}/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹
api/v1/{post_id}/comments/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка всСх ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ постом
api/v1/{post_id}/comments/{id}/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ коммСнтария

Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ эндпоинта follow доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

api/v1/follow/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ подписок Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
api/v1/follow/{id}/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ подписки

И users доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π°Π΄ΠΌΠΈΠ½Π°:

api/v1/users/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
api/v1/users/{id}/ - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • АвторизованныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ посты, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ(ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ) ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ. Π’Π°ΠΊ ΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ присутсвуСт пагинация(LimitOffsetPagination), поиск ΠΈ сортировка, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½ΠΈΠΆΠ΅
api/v1/posts/?limit=10&offset=0 - ΠŸΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΡ Π½Π° 10 постов, начиная с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ
api/v1/posts/?search=your_search - Поиск Π² тСкстС, постов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π³Ρ€ΡƒΠΏΠΏΡ‹
api/v1/posts/?ordering=-pub_date - сортировка ΠΏΠΎ Π΄Π°Ρ‚Π΅ создания постов(сначало Π½ΠΎΠ²Ρ‹Π΅)

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сообщСств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π°Π΄ΠΌΠΈΠ½ панСль Django:

admin/ - послС Π°Π²Ρ‚ΠΎΡ€Π°Π·ΠΈΠ°Ρ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» "сообщСства" ΠΈ создайтС Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Доступ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ доступСн ΠΏΠΎ jwt-Ρ‚ΠΎΠΊΠ΅Π½Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² POST запрос ΠΏΠΎ адрСсу:

api/v1/jwt/create/

ΠŸΠ΅Ρ€Π΅Π΄Π°Π² Π² body Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

{
"username": "your_nickname",
"password": "your_password"
}

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² Ρ‚ΠΎΠΊΠ΅Π½ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² headers, послС этого Π²Π°ΠΌ Π±ΡƒΠ΄Ρƒ доступны всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

Authorization: Bearer {your_token}

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ΠΌ эндпоинтам:

api/v1/jwt/refresh/ - ОбновлСниС Ρ‚ΠΎΠΊΠ΅Π½Π°
api/v1/jwt/verify/ - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΎΠΊΠ΅Π½Π°

Авторы

GerG

About

πŸ‘₯ REST API для сСрвиса Yatube.


Languages

Language:Python 98.7%Language:HTML 1.3%