ΠΠ»Π°Π½ REST-ΡΠ΅ΡΡΠ°
Π§ΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ REST-ΡΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅;
- ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΈΡ
Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
;
- ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ REST-Π·Π°ΠΏΡΠΎΡΡ;
- ΡΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌΠΈ;
- ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΡΠ΅Ρ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ.
1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡ ΡΠ°Π½Π΄ΠΎΠΌΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ Π²Π·ΡΡΡ ΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° csv. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ»Π΅ Π€ΠΠ, Π΄Π°ΡΡ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ, ΠΏΠΎΡΡΡ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ (ΠΏΠΎΡΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ):
import random
import string
import datetime
# Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°
age1 = random.randrange(15))
# Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΡΠ»Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅ ΠΎΡ 1 Π΄ΠΎ 100 Ρ ΡΠ°Π³ΠΎΠΌ 3
age2 = random.randrange(0, 101, 3))
# Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅ ΠΎΡ 5.2 Π΄ΠΎ 7.9
print(random.uniform(5.2, 7.9))
# Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· 10 ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
letters = string.ascii_letters
password = ''.join(random.choice(letters) for i in range(10))
# Π²ΡΠ±ΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· list
name = random.choice(['Oliver', 'William', 'James'])
mail = name+'@'+random.choice(['mail.ru', 'gmail.com', 'ya.ru'])
# Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΉ Π΄Π°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ
start_date = datetime.date(1920, 1, 1)
end_date = datetime.date(2011, 2, 1)
time_between_dates = end_date - start_date
days_between_dates = time_between_dates.days
random_number_of_days = random.randrange(days_between_dates)
birthday = start_date + datetime.timedelta(days=random_number_of_days)
Π’Π΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ csv:
import csv
with open('user.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
for row in csv_reader:
age = row['age']
# ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅...
name = row['nameβ]
2. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ Π² Π±Π°Π·Ρ
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π±ΡΡΡΡΠ΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ REST-Π·Π°ΠΏΡΠΎΡΠΎΠ²: Python ΡΠΌΠ΅Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Π½Π΅ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π‘Π£ΠΠ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΡΡΠ²ΠΎΠΊ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΠ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ PostgreSQL, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
import psycopg2
import logging
# Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ
DB_ARGS = "dbname=test user=postgres password=test host=localhost port=5432"
# ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΠ
def conDB():
try:
conn = psycopg2.connect(DB_ARGS)
except:
logging.error("Unable to connect to the database.")
return None
cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
return cur
# ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
def insertUser(cur, name, age, mail, password):
cur.execute("INSERT INTO person(name, age, mail, password) VALUES(%s, %s, %s, %s)", (name, age, mail, password))
*ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡΠ° ΠΠ test
, ΠΈ Π² Π½Π΅ΠΉ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° user
Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ name
, age
, mail
, pass
.
3. ΠΠ΅ΡΠ²ΡΠ΅ REST-Π·Π°ΠΏΡΠΎΡΡ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Ρ REST-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π΅Π»ΠΈΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. ΠΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½ΡΠ°Π²ΡΡΡΡ aiohttp ΠΈ requests. ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ² ΡΠ΄ΠΎΠ±Π½Π΅Π΅ requests. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ POST-Π·Π°ΠΏΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ GET-Π·Π°ΠΏΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½.
import requests
# ΡΠ΅Π»ΠΎ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
user = {"name": "Fredβ, "age": 25,"mail":"fr@mal.com", "password": "134513"}
r = requests.post("http://localhost/users/", data=user)
# Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄ Π·Π°ΠΏΡΠΎΡΠ°
print(r.status_code)
# GET Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ id
url = "http://localhost/users/β + str(r.json()['id'])
r = requests.get("http://localhost/users/β, data=user)
print(r.text)
*ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡΡ POST ΠΈ GET Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π΅ΠΌ.
4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PyTest
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π΅ΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΌ ΡΠ΅ΡΡΠΎΠΌ. ΠΡΠ»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ. ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pyTest.
Π Π°Π·Π΄Π΅Π»ΠΈΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° 2 ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΡΠ°: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π΅ΠΌ ΠΏΠΎ id.
import pytest
import requests
import json
# ΡΠ΅ΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ
def test create_user():
user = {"name": "Fredβ, "age": 25, "mail":"fr@mal.com", "password": "134513"}
url = "http://localhost/users/β
r = requests.post(url, data=user)
try:
r.raise_for_status()
except requests.exceptions.HTTPError as e:
print('ERROR: %s' % e)
assert r.text == "Ok"
# ΡΠ΅ΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ id
def test_get_user_by_id():
example_user = json.dumps({"name": "Ronβ, "age": 39, "mail": "magicRon@mal.com", "password": "123"})
url = "http://localhost/users/1β
r = requests.get(url)
try:
r.raise_for_status()
except requests.exceptions.HTTPError as e:
print('ERROR: %s' % e)
user = json.loads(r.data)
assert example_user == user
*ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡΡ POST ΠΈ GET Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π΅ΠΌ.
Π Π²ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΡΠ΅ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ json. ΠΠ½ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ JSON-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ Π½Π°Π΄ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΊΠ»ΡΡΡ ΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π΄Π΅ΡΡ.
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠ»ΡΡΡ Python ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠΈΠ²Π°ΡΡ ΠΌΠΈΠ½ΡΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ². Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΎΠ»Ρ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΠΊΡΠ΄Π° ΡΠ°ΡΡΠΈ, Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡ Π½ΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ»ΡΡΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅: Π»ΡΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ β ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΌΠ΅Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
Π₯ΠΎΡΡ ΠΎΡΠ²ΠΎΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ?
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ ΡΠ΅ΠΌΠ° Π΄Π»Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ: Π½Π΅ Ρ ΠΊΠΎΠ³ΠΎ ΡΠΏΡΠΎΡΠΈΡΡ ΠΈ ΡΡΠΎ-ΡΠΎ ΡΡΠΎΡΠ½ΠΈΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΠΊΡΡΡ Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Β», Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡΠ½ΡΡ Π²Π΅Π±ΠΈΠ½Π°ΡΠΎΠ² Π²Ρ:
- ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π½Π³, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π³ΠΎΠ²ΠΎΡΡΡ Π²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΡΠ·ΡΠΊ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ;
- Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ;
- ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅ΡΡ ΠΊ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
ΠΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ junior, ΡΠ°ΠΊ ΠΈ middle-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ