ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈ ΠΎΡΠ·ΡΠ²Ρ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡΡ (ΡΠΈΠ»ΡΠΌΡ, ΠΊΠ½ΠΈΠ³ΠΈ, ΠΌΡΠ·ΡΠΊΠΈ)
ΠΡΠΎΠ΅ΠΊΡ Π°ΠΊΠΊΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΠΎΡΠ·ΡΠ²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡΡ
.
ΠΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΆΠ°Π½ΡΡ.
Π£ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ°:
Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΎΡ, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ.
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ email ΠΈ username Π½Π° /auth/email/.
- YaMDB ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΈΡΡΠΌΠΎ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ (confirmation_code) Π½Π° Π°Π΄ΡΠ΅Ρ email .
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ email ΠΈ confirmation_code Π½Π° /auth/token/, Π² ΠΎΡΠ²Π΅ΡΠ΅ Π½Π° Π·Π°ΠΏΡΠΎΡ Π΅ΠΌΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ token (JWT-ΡΠΎΠΊΠ΅Π½).
Π§Π΅ΡΠ΅Π· ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ /api/v1/titles/{title_id}/reviews/ ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡΠΌ ΠΎΡΠ·ΡΠ²Ρ Ρ ΠΎΡΠ΅Π½ΠΊΠΎΠΉ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ Π΄Π΅ΡΡΡΠΈ. ΠΠ° ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΡΠ·ΡΠ². Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΡΠ΅Π½ΠΎΠΊ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΡΡΡΠ΅Π΄Π½ΡΠ½Π½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ. Π§ΠΈΡΠ°ΡΡ ΠΎΡΠ·ΡΠ²Ρ ΠΌΠΎΠ³ΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ.
Π§Π΅ΡΠ΅Π· ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ /api/v1/titles/{title_id}/reviews/{review_id}/comments/ ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΎΡΠ·ΡΠ²Ρ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π§ΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎ ΡΠ½Π΄ΠΎΠΏΠΈΠ½ΡΡ /redoc/
- ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°ΠΏΠΈΡΠ°Π½ Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Django REST Framework
- Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Simple JWT.
βΎ ΠΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π½Π΅Π³ΠΎ
βΎ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠΉΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
βΎ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π° requirements.txt :
pip install -r requirements.txt
βΎ Π ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ manage.py Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ:
python manage.py migrate
βΎ ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ:
python manage.py runserver
ΠΡΠΎΠ΅ΠΊΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π° Π―Π½Π΄Π΅ΠΊΡ ΠΡΠ°ΠΊΡΠΈΠΊΡΠΌ.
ΠΠ°Π΄Π°ΡΠΈ Π±ΡΠ»ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
-
ΠΠ½ΡΠΎΠ½ ΠΠ΅Π½ΠΈΡΠΎΠ² β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ: ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ°, ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ, ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· e-mail.
-
ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Π’Π΅Π»Π΅ΠΏΠΈΠ½ β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠ·ΡΠ²Π°ΠΌΠΈ, ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ: ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ½Π΄ΠΏΠΎΠΉΠ½ΡΠΎΠ² ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ².
-
ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠ·ΡΠ±Π° β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌΠΈ ΠΈ ΠΆΠ°Π½ΡΠ°ΠΌΠΈ: ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ½Π΄ΠΏΠΎΠΉΠ½ΡΠΎΠ² ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ².