ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° API
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ 1.1. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΠ°ΡΡΠΎΡΡΠ΅Π΅ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π²ΡΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π―Π½Π΄Π΅ΠΊΡ ΠΠΈΡΠΏΠ΅ΡΡΠ΅ΡΡΠΊΠΎΠΉ (fleet.yandex.ru) ΠΈ ΠΠΈΡΡΠΈΠΊΡ24 (ΠΎΠ±Π»Π°ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ, ΡΠ°ΡΠΈΡ ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ). ΠΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΎΡΠ°ΠΌ Π½Π° Π°ΡΡΡΠΎΡΡΠ΅. 1.2. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΠΈΠ·Π½Π΅ΡΠ° ΠΠ°ΠΊΠ°Π·ΡΠΈΠΊ β ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΡΡΠ»ΡΠ³ΠΈ ΡΠ°ΠΊΡΠΈ ΠΈ ΠΊΡΡΡΠ΅ΡΡΠΊΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π―Π½Π΄Π΅ΠΊΡ Go. ΠΠ°ΡΡΡΠ°Π±: ΠΠΎΠ»Π΅Π΅ 5 ΠΏΠ°ΡΠΊΠΎΠ² (ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΡ
Π»ΠΈΡ), ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ
ΠΊ Π―Π½Π΄Π΅ΠΊΡ ΠΠΈΡΠΏΠ΅ΡΡΠ΅ΡΡΠΊΠΎΠΉ ΠΠΎΠ»Π΅Π΅ 500 Π°ΠΊΡΠΈΠ²Π½ΡΡ
Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΊΡΡΡΠ΅ΡΠΎΠ² ΠΠΈΡΡΠΈΠΊΡ24 β ΡΠΈΡΡΡΠΉ ΠΏΠΎΡΡΠ°Π», ΡΠ°ΡΠΈΡ ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ middleware β Π³ΠΎΡΠΎΠ²Ρ Π°ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ 1.3. Π¦Π΅Π»ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π¦Π΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ, ΠΊΡΡΡΠ΅ΡΠ°ΠΌΠΈ, Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠΌΠΈ ΠΈ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΠΈΡΡΠΈΠΊΡ24 ΠΠ²ΡΡΡΠΎΡΠΎΠ½Π½ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π€ΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΉ ΡΡΡΡ ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΏΠΎ ΠΏΠ°ΡΠΊΠ°ΠΌ, Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌ, Π·Π°ΠΊΠ°Π·Π°ΠΌ Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ°ΠΌΠΈ ΠΈ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ ΠΈΠ· ΠΠΈΡΡΠΈΠΊΡ24 Π‘Π²ΡΠ·Ρ Ρ 1Π‘, ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Telegram ΠΈ ΠΠΈΡΡΠΈΠΊΡ24 2. Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π»Π°Π½Π΄ΡΠ°ΡΡ 2.1. Yandex Fleet API ΠΠ°Π·ΠΎΠ²ΡΠΉ URL: https://fleet-api.taxi.yandex.net ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ X-Client-ID, X-API-Key, X-Park-ID Π€ΠΎΡΠΌΠ°Ρ: REST API, JSON, POST-Π·Π°ΠΏΡΠΎΡΡ ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²: ΠΡΡΠΏΠΏΠ° API ΠΠ΅ΡΠΎΠ΄Ρ ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ContractorProfiles Π‘ΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ/ΠΊΡΡΡΠ΅ΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° Π°Π²ΡΠΎ Π§ΡΠ΅Π½ΠΈΠ΅ + ΠΠ°ΠΏΠΈΡΡ Orders Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°ΠΊΠ°Π·ΠΎΠ², ΡΡΠ΅ΠΊ ΠΏΠΎ Π·Π°ΠΊΠ°Π·Ρ Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅ Transactions Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΏΠΎ Π·Π°ΠΊΠ°Π·Ρ, ΠΏΠΎ ΠΏΠ°ΡΠΊΡ; ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π§ΡΠ΅Π½ΠΈΠ΅ + ΠΠ°ΠΏΠΈΡΡ DriverWorkRules Π‘ΠΏΠΈΡΠΎΠΊ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΡΠ°Π±ΠΎΡΡ Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅ ΠΠ°ΠΆΠ½ΠΎ: Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΡΠΊΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠ»ΡΡΠ΅ΠΉ (Client ID + API Key + Park ID). ΠΠ»ΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ API Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ [Email ΡΠΊΡΡΡ]. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ IP-Π°Π΄ΡΠ΅Ρ middleware-ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Π±Π΅Π»ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. 2.2. ΠΠΈΡΡΠΈΠΊΡ24 REST API Π’ΠΈΠΏ: ΠΠ±Π»Π°ΡΠ½ΡΠΉ, ΡΠ°ΡΠΈΡ ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ: ΠΡ
ΠΎΠ΄ΡΡΠΈΠ΅ Π²Π΅Π±Ρ
ΡΠΊΠΈ (Π±Π΅ΡΡΡΠΎΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½) ΠΈ/ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (OAuth 2.0) ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ: Leaky Bucket β 2 Π·Π°ΠΏΡΠΎΡΠ°/ΡΠ΅ΠΊ, ΠΏΠΎΡΠΎΠ³ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ 50 Π·Π°ΠΏΡΠΎΡΠΎΠ² Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π΅ Π²Π΅Π±Ρ
ΡΠΊ) Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ 2.3. ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ middleware-ΡΠ΅ΡΠ²Π΅Ρ (Π°ΡΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ VPS/ΠΎΠ±Π»Π°ΠΊΠΎ), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»Ρ ΠΏΡΠΎΠΊΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Yandex Fleet API ΠΈ ΠΠΈΡΡΠΈΠΊΡ24 REST API: ΠΠΎΠ»Π»ΠΈΠ½Π³ Yandex Fleet API ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ (ΠΊΠ°ΠΆΠ΄ΡΠ΅ 1-3 ΠΌΠΈΠ½ΡΡΡ) Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΡ
Π²Π΅Π±Ρ
ΡΠΊΠΎΠ² ΠΠΈΡΡΠΈΠΊΡ24 Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² Fleet ΠΡΠ΅ΡΠ΅Π΄Ρ Π·Π°Π΄Π°Ρ (Redis/RabbitMQ) Π΄Π»Ρ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΡ rate-limit ΠΠΈΡΡΠΈΠΊΡ24 (2 Π·Π°ΠΏΡΠΎΡΠ°/ΡΠ΅ΠΊ) ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΡΡΠ΅ΠΊ middleware: Node.js / Python (FastAPI), PostgreSQL, Redis, Docker. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ Ρ
ΠΎΡΡΠΈΠ½Π³: Yandex Cloud / Selectel / Timeweb Cloud β VPS ΠΎΡ 2 vCPU, 4 GB RAM, SSD 40 GB. 3. ΠΠ±ΡΡΠΌ ΡΠ°Π±ΠΎΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ 3.1. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΠΈΡΡΠΈΠΊΡ24 (Ρ Π½ΡΠ»Ρ) 3.1.1. Π‘ΠΌΠ°ΡΡ-ΠΏΡΠΎΡΠ΅ΡΡΡ (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄) Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΌΠ°ΡΡ-ΠΏΡΠΎΡΠ΅ΡΡΡ Π² CRM: Π‘Π Β«ΠΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ / ΠΡΡΡΠ΅ΡΡΒ» ΠΠΎΠ»Π΅ Π’ΠΈΠΏ ΠΡΡΠΎΡΠ½ΠΈΠΊ Fleet ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Fleet ID String driver_profile.id Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠ²ΡΠ·ΠΈ Park ID String park.id ΠΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊ ΠΏΠ°ΡΠΊΡ Π€ΠΠ String last_name, first_name, middle_name Π’Π΅Π»Π΅ΡΠΎΠ½ String phone Π’ΠΈΠΏ (ΡΠ°ΠΊΡΠΈ/ΠΊΡΡΡΠ΅Ρ) List work_rule Π‘ΡΠ°ΡΡΡ (working/fired/β¦) List work_status Π‘ΡΠ°Π΄ΠΈΡ Π²ΠΎΡΠΎΠ½ΠΊΠΈ ΠΠ°Π»Π°Π½Ρ Number account.balance ΠΠ²ΡΠΎΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π£ΡΠ»ΠΎΠ²ΠΈΡ ΡΠ°Π±ΠΎΡΡ List work_rule_id ΠΠ²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Π‘Π²ΡΠ·Ρ car_id Π‘Π²ΡΠ·Ρ Ρ Π‘Π ΠΠ²ΡΠΎ ΠΠ°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ DateTime created_date Π‘Π Β«ΠΠ²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈΒ» ΠΠΎΠ»Π΅ Π’ΠΈΠΏ ΠΡΡΠΎΡΠ½ΠΈΠΊ Fleet ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Car ID String car.id Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΠ°ΡΠΊΠ°, ΠΌΠΎΠ΄Π΅Π»Ρ String brand, model ΠΠΎΡΠ½ΠΎΠΌΠ΅Ρ String number Π¦Π²Π΅Ρ String color ΠΠΎΠ΄ Π²ΡΠΏΡΡΠΊΠ° Number year VIN String vin Π‘Π Β«ΠΠ°ΠΊΠ°Π·ΡΒ» ΠΠΎΠ»Π΅ Π’ΠΈΠΏ ΠΡΡΠΎΡΠ½ΠΈΠΊ Fleet ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Order ID String order.id Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΠΎΠ΄ΠΈΡΠ΅Π»Ρ/ΠΊΡΡΡΠ΅Ρ Π‘Π²ΡΠ·Ρ driver_profile.id Π‘Π²ΡΠ·Ρ Ρ Π‘Π Π‘ΡΠ°ΡΡΡ Π·Π°ΠΊΠ°Π·Π° List status Π‘ΡΠ°Π΄ΠΈΡ Π²ΠΎΡΠΎΠ½ΠΊΠΈ ΠΠ΄ΡΠ΅Ρ ΠΏΠΎΠ΄Π°ΡΠΈ String route.point_from ΠΠ΄ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ String route.point_to Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ Number price Π’ΠΈΠΏ ΠΎΠΏΠ»Π°ΡΡ List payment_type Π½Π°Π»/Π±Π΅Π·Π½Π°Π»/ΠΊΠΎΡΠΏ ΠΠ°ΡΠ°/Π²ΡΠ΅ΠΌΡ DateTime booked_at, ended_at Park ID String park.id Π‘Π Β«Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΒ» ΠΠΎΠ»Π΅ Π’ΠΈΠΏ ΠΡΡΠΎΡΠ½ΠΈΠΊ Fleet ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Transaction ID String id Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π‘Π²ΡΠ·Ρ driver_profile_id ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ List category_id ride, tip, fine, ΠΈ Ρ.Π΄. Π‘ΡΠΌΠΌΠ° Number amount ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ String description ΠΠ°ΡΠ° DateTime event_at Park ID String park.id 3.1.2. Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Β«ΠΠ°ΡΠΊΠΈΒ» Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Ρ ΠΏΠΎΠ»ΡΠΌΠΈ: Park ID, ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠ»ΠΈΡΠ°, Client ID (Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ), API Key (Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ, Ρ
ΡΠ°Π½ΠΈΡΡ Π½Π° middleware), Π‘ΡΠ°ΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. 3.2. Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Yandex Fleet ? ΠΠΈΡΡΠΈΠΊΡ24 (ΡΡΠ΅Π½ΠΈΠ΅) ΠΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ / ΠΡΡΡΠ΅ΡΡ: ΠΠΎΠ»Π»ΠΈΠ½Π³ /v1/parks/driver-profiles/list ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠ°ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 3 ΠΌΠΈΠ½ΡΡΡ Π‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Fleet ID: Π΅ΡΠ»ΠΈ Π½Π΅Ρ β ΡΠΎΠ·Π΄Π°ΡΡ; Π΅ΡΠ»ΠΈ Π΅ΡΡΡ β ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠΈΠ΅ΡΡ ΠΏΠΎΠ»Ρ ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ° Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ»Π»ΠΈΠ½Π³Π΅ ΠΠ°ΠΊΠ°Π·Ρ: ΠΠΎΠ»Π»ΠΈΠ½Π³ /v1/parks/orders/list ΠΊΠ°ΠΆΠ΄ΡΠ΅ 1-2 ΠΌΠΈΠ½ΡΡΡ (booked_at ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ) Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π‘Π Β«ΠΠ°ΠΊΠ°Π·ΡΒ» Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ° Π·Π°ΠΊΠ°Π·Π° (ΡΡΠ°Π΄ΠΈΠΈ Π²ΠΎΡΠΎΠ½ΠΊΠΈ): Π½ΠΎΠ²ΡΠΉ ? Π² ΠΏΡΡΠΈ ? Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ? ΠΎΡΠΌΠ΅Π½ΡΠ½ Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ: ΠΠΎΠ»Π»ΠΈΠ½Π³ /v2/parks/transactions/list ΠΊΠ°ΠΆΠ΄ΡΠ΅ 5 ΠΌΠΈΠ½ΡΡ (event_at ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ) Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π‘Π Β«Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΒ» Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ Π·Π°ΠΊΠ°Π·Ρ ΠΠ΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ Transaction ID 3.3. Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΠΈΡΡΠΈΠΊΡ24 ? Yandex Fleet (Π·Π°ΠΏΠΈΡΡ) Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ / ΠΊΡΡΡΠ΅ΡΠ°: ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π‘Π Β«ΠΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΒ» Ρ ΠΏΡΡΡΡΠΌ Fleet ID β Π²ΡΠ·ΠΎΠ² POST /v2/parks/contractors/driver-profile ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Fleet ID Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Π24 Π’ΡΠΈΠ³Π³Π΅Ρ: ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠΉ Π²Π΅Π±Ρ
ΡΠΊ ΠΠΈΡΡΠΈΠΊΡ24 Π½Π° ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΈΡ / ΡΠΏΠΈΡΠ°Π½ΠΈΡ Π±Π°Π»Π°Π½ΡΠ°: ΠΠ½ΠΎΠΏΠΊΠ°/ΡΠΎΠ±ΠΎΡ Π² ΠΊΠ°ΡΡΠΎΡΠΊΠ΅ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ? POST /v2/parks/driver-profiles/transactions ΠΠΎΠ»Ρ: ΡΡΠΌΠΌΠ°, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ (partner_bonus, partner_ride_fee ΠΈ Π΄Ρ.) ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ: X-Idempotency-Token Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΡΠΈΠ²ΡΠ·ΠΊΠ° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ: ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Ρ Β«ΠΠ²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΒ» Π² ΠΊΠ°ΡΡΠΎΡΠΊΠ΅ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ? PUT /v1/parks/driver-profiles/car-bindings 3.4. Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π ΠΠΈΡΡΠΈΠΊΡ24: ΠΡΠΈΠ±ΠΊΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ β ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ Π² ΠΆΠΈΠ²ΡΡ Π»Π΅Π½ΡΡ/ΡΠ°Ρ ΠΠΎΠ²ΡΠΉ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ β ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΠ°Π»Π°Π½Ρ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π½ΠΈΠΆΠ΅ ΠΏΠΎΡΠΎΠ³Π° β ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π±ΡΡ
Π³Π°Π»ΡΠ΅ΡΡ Π Telegram: ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ (middleware down, API Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½, auth error) Π‘Π²ΠΎΠ΄ΠΊΠ° Π·Π° Π΄Π΅Π½Ρ: ΠΊΠΎΠ»-Π²ΠΎ Π·Π°ΠΊΠ°Π·ΠΎΠ², Π²ΡΡΡΡΠΊΠ°, Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ (Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ) Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ: Telegram Bot API, Π±ΠΎΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π·@BotFather, ΡΠΎΠΊΠ΅Π½ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π½Π° middleware 3.5. ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΈ ΠΎΡΡΡΡΡ Π ΠΠΈΡΡΠΈΠΊΡ24 Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΡΡΡΡΡ/Π΄Π°ΡΠ±ΠΎΡΠ΄Ρ: Π‘Π²ΠΎΠ΄ΠΊΠ° ΠΏΠΎ ΠΏΠ°ΡΠΊΠ°ΠΌ: ΠΊΠΎΠ»-Π²ΠΎ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, Π·Π°ΠΊΠ°Π·ΠΎΠ², Π²ΡΡΡΡΠΊΠ°, ΡΡΠ΅Π΄Π½ΠΈΠΉ Π±Π°Π»Π°Π½Ρ (ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠ°ΡΠΊΡ ΠΈ ΡΡΠΌΠΌΠ°ΡΠ½ΠΎ) Π’ΠΎΠΏ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ: ΠΏΠΎ ΠΊΠΎΠ»-Π²Ρ Π·Π°ΠΊΠ°Π·ΠΎΠ², ΠΏΠΎ Π²ΡΡΡΡΠΊΠ΅, ΠΏΠΎ ΠΎΡΠΌΠ΅Π½Π°ΠΌ Π€ΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΉ ΠΎΡΡΡΡ: ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ, ΡΠ°Π»ΡΠ΄ΠΎ, Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΠ°ΡΠ±ΠΎΡΠ΄ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ: Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ, Π·Π°ΠΊΠ°Π·Ρ Π² ΡΠ°Π±ΠΎΡΠ΅, Π²ΡΡΡΡΠΊΠ° ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ: ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΎΡΡΡΡΡ CRM ΠΠΈΡΡΠΈΠΊΡ24 + Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΈΡΡΠ΅ΠΉΠΌ) Ρ Π³ΡΠ°ΡΠΈΠΊΠ°ΠΌΠΈ Π½Π° Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
middleware. 3.6. ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ 1Π‘ ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ REST API ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ Π½Π° middleware Π΄Π»Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π² 1Π‘: GET /api/v1/drivers β ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ Ρ Π±Π°Π»Π°Π½ΡΠ°ΠΌΠΈ GET /api/v1/transactions?from=&to= β ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ GET /api/v1/orders?from=&to= β Π·Π°ΠΊΠ°Π·Ρ Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ GET /api/v1/reports/daily β ΡΠ²ΠΎΠ΄Π½ΡΠΉ ΠΎΡΡΡΡ ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ: API-ΠΊΠ»ΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅. Π€ΠΎΡΠΌΠ°Ρ: JSON. ΠΠ° ΡΡΠΎΡΠΎΠ½Π΅ 1Π‘ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ (Π½Π΅ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΠΎΠ±ΡΡΠΌ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½ΠΎ ΠΈΠ½ΠΎΠ΅). 4. ΠΠ΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ 4.1. ΠΠ°Π΄ΡΠΆΠ½ΠΎΡΡΡ ΠΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ
ΠΏΠΎΠΏΡΡΠΎΠΊ (retry queue) ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°Ρ
API Ρ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ backoff ΠΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ Π²ΡΠ΅Ρ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°ΠΏΠΈΡΠΈ (Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ ID ΠΈ X-Idempotency-Token) ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ middleware (ΡΡΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ / Docker restart policy) 4.2. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π‘ΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ rate-limit ΠΠΈΡΡΠΈΠΊΡ24 (2 Π·Π°ΠΏΡΠΎΡΠ°/ΡΠ΅ΠΊ, ΠΏΠΎΡΠΎΠ³ 50) ΠΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° (batch) Π΄Π»Ρ ΠΌΠ°ΡΡΠΎΠ²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (500+ Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ? 5+ ΠΏΠ°ΡΠΊΠΎΠ²) ΠΠ°ΡΠ΅Π½ΡΠ½ΠΎΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5 ΠΌΠΈΠ½ΡΡ Π΄Π»Ρ Π·Π°ΠΊΠ°Π·ΠΎΠ² 4.3. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ API-ΠΊΠ»ΡΡΠΈ Yandex Fleet Ρ
ΡΠ°Π½ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° middleware (Π½Π΅ Π² ΠΠΈΡΡΠΈΠΊΡ24) HTTPS Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ IP-whitelist Π½Π° middleware Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Yandex Fleet API Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² Π² ΠΠΈΡΡΠΈΠΊΡ24: ΡΠΎΠ»ΠΈ Β«ΠΠ΄ΠΌΠΈΠ½ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈΒ», Β«ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΡΠΊΠ°Β», Β«ΠΡΡ
Π³Π°Π»ΡΠ΅ΡΒ» 4.4. ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΠΎΠ³ΠΈ Π²ΡΠ΅Ρ
API-Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠ°ΡΡΡ-ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ΅Π»ΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ Π ΠΎΡΠ°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ² (Ρ
ΡΠ°Π½ΠΈΡΡ 30 Π΄Π½Π΅ΠΉ) Health-check ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ Π½Π° middleware (/health) ΠΠ»Π΅ΡΡΡ Π² Telegram ΠΏΡΠΈ Π΄Π°ΡΠ½ΡΠ°ΠΉΠΌΠ΅ > 5 ΠΌΠΈΠ½ΡΡ 5. Π‘ΠΎΡΡΠ°Π² ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ β ΠΡΡΠ΅ΡΠ°ΠΊΡ Π€ΠΎΡΠΌΠ°Ρ 1 Middleware-ΡΠ΅ΡΠ²ΠΈΡ (ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ + Docker) Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ 2 ΠΠ°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ°Π» ΠΠΈΡΡΠΈΠΊΡ24 (Π‘Π, ΠΏΠΎΠ»Ρ, Π²ΠΎΡΠΎΠ½ΠΊΠΈ, ΡΠΎΠ»ΠΈ) ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΏΠΎΡΡΠ°Π»Π΅ 3 ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΠΈΡΡΠΈΠΊΡ24 (Π΄Π°ΡΠ±ΠΎΡΠ΄, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ) JS-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4 Telegram-Π±ΠΎΡ Π΄Π»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π ΡΠΎΡΡΠ°Π²Π΅ middleware 5 REST API Π΄Π»Ρ 1Π‘ (ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ) Π ΡΠΎΡΡΠ°Π²Π΅ middleware 6 ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° PDF / Wiki 7 ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ PDF / Wiki 8 Π‘ΠΊΡΠΈΠΏΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
Π ΡΠΎΡΡΠ°Π²Π΅ middleware 6. ΠΡΠ°ΠΏΡ ΠΈ ΡΡΠΎΠΊΠΈ β ΠΡΠ°ΠΏ Π‘ΡΠΎΠΊ Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΡΠΈΡΠ΅ΡΠΈΠΉ ΠΏΡΠΈΡΠΌΠΊΠΈ 1 ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ 1 Π½Π΅Π΄. Π‘Ρ
Π΅ΠΌΠ° Π°ΡΡ
ΠΈΡ., ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΠΏΠΎΠ»Π΅ΠΉ Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ 2 ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΠΈΡΡΠΈΠΊΡ24 (Π‘Π, ΠΏΠΎΠ»Ρ, ΡΠΎΠ»ΠΈ) 1 Π½Π΅Π΄. ΠΠΎΡΠΎΠ²ΡΠΉ ΠΏΠΎΡΡΠ°Π» ΠΡΠ΅ Π‘Π ΠΈ ΠΏΠΎΠ»Ρ ΡΠΎΠ·Π΄Π°Π½Ρ 3 Middleware: ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Fleet ? Π24 2 Π½Π΅Π΄. Π Π°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ»Π»ΠΈΠ½Π³ ΠΠ°Π½Π½ΡΠ΅ Π² Π24 ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Fleet 4 Middleware: ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Π24 ? Fleet 1.5 Π½Π΅Π΄. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅/Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΠ°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² Fleet 5 Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ (Telegram + Π24) 1 Π½Π΅Π΄. ΠΠΎΡ + Π°Π»Π΅ΡΡΡ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡ 6 ΠΠ°ΡΠ±ΠΎΡΠ΄Ρ ΠΈ ΠΎΡΡΡΡΡ 1.5 Π½Π΅Π΄. Π Π°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΠΎΡΡΡΡΡ ΠΠ°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Ρ 7 API Π΄Π»Ρ 1Π‘ + Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ 1 Π½Π΅Π΄. Swagger / Π΄ΠΎΠΊΠΈ ΠΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ 8 Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π±Π°Π³ΡΠΈΠΊΡ, ΡΠ΄Π°ΡΠ° 1 Π½Π΅Π΄. ΠΠΊΡ ΠΏΡΠΈΡΠΌΠΊΠΈ ΠΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΡΠΎΠΉΠ΄Π΅Π½Ρ ΠΠ’ΠΠΠ ~10 Π½Π΅Π΄. 7. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Yandex Fleet API (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄ΡΠ½Π½ΡΠ΅ ΠΊΠ΅ΠΉΡΡ) ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΠΈΡΡΠΈΠΊΡ24 ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ (REST API, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΠΏΡΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ Π½Π° VPS / ΠΎΠ±Π»Π°ΠΊΠ΅ (Docker, CI/CD) ΠΠ½Π°Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ rate-limit ΠΠΈΡΡΠΈΠΊΡ24 ΠΈ Yandex Fleet ΠΠΏΡΡ Ρ Telegram Bot API 8. ΠΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΡΡΠ°Π»Ρ ΠΠΈΡΡΠΈΠΊΡ24 (Π°Π΄ΠΌΠΈΠ½) ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ API-ΠΊΠ»ΡΡΠΈ Yandex Fleet ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΏΠ°ΡΠΊΠ°ΠΌ (Client ID, API Key, Park ID) ΠΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ VPS/ΠΎΠ±Π»Π°ΠΊΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ SSH-Π΄ΠΎΡΡΡΠΏ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π‘ΠΎΠ·Π΄Π°ΡΡ Telegram-Π±ΠΎΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΠΊΠ΅Π½ + chat_id Π³ΡΡΠΏΠΏΡ ΠΠ°Π·Π½Π°ΡΠΈΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΏΡΠΈΡΠΌΠΊΠΈ ΡΡΠ°ΠΏΠΎΠ² ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠΊΠΎΠ² Ρ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΡΡΠ»ΠΈΡ 9. ΠΠ°ΡΠ°Π½ΡΠΈΠΉΠ½ΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²Π° ΠΠ°ΡΠ°Π½ΡΠΈΠΉΠ½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄: [__] ΠΌΠ΅ΡΡΡΠ΅Π² Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ Π°ΠΊΡΠ° ΠΏΡΠΈΡΠΌΠΊΠΈ ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π³ΠΎΠ² Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π’Π β Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΠ΄Π°ΠΏΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Yandex Fleet API (Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
Π³Π°ΡΠ°Π½ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠΌ Π’Π) Π’Π΅Ρ
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π³Π°ΡΠ°Π½ΡΠΈΠΈ β ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΡ 10. ΠΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠΈΡΠΊΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π ΠΈΡΠΊ ΠΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΠΈΡΠΈΠ³Π°ΡΠΈΡ Yandex Fleet API Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ webhook-ΠΏΡΡΠΈ (ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π»ΠΈΠ½Π³) ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° 1-5 ΠΌΠΈΠ½ ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² Rate-limit ΠΠΈΡΡΠΈΠΊΡ24 (2 Π·Π°ΠΏΡ/ΡΠ΅ΠΊ) ΠΠ΅Π΄Π»Π΅Π½Π½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΡΠ΅ΡΠ΅Π΄Ρ + batch ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ API Yandex Π±Π΅Π· ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΠΎΠ»ΠΎΠΌΠΊΠ° ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ + Π°Π»Π΅ΡΡΡ ΠΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ middleware ΠΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Docker restart + health-check IP Π½Π΅ Π² whitelist Yandex 403 ΠΎΡ API Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ IP Π½Π° VPS.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° API
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ! ΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π² ΡΡΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π»ΠΈΡΠ½ΡΡ
ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠΎΠ² ΠΠΠΠ ΠΈ ΠΠ (ΠΠ°Π½Π½ΡΠ΅ ΠΈΠ· Π²ΠΎΡΠΎΠ½ΠΊΠΈ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΠ°ΠΊΠ°Π·Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²Π°ΡΠΎΠ², ΠΏΡΠΎΠ΄Π°ΠΆΠΈ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΄Π°ΠΆ, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ, ΠΏΡΠΎΡΠΌΠΎΡΡΡ, ΠΊΠΎΡΠ·ΠΈΠ½Π°, ΠΏΠΎ ΡΠΏΠΏ ΡΡΠ½Π΅ΠΌ ΡΡΠΌΠΌΡ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΈ ΡΡΠΌΠΌΡ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ , ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄Ρ, ΡΠ°ΡΡ
ΠΎΠ΄Ρ ΠΎΠ·ΠΎΠ½, ΡΠ²Π΄) ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ
ΡΠ°ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π°ΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
Π² ΡΠ°Π±Π»ΠΈΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠΌ, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈ ΡΠΎΠ·Π²ΠΎΠ½Π΅ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π²Π°ΠΌ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ
ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎΠ·ΠΎΠ½ ΠΈ ΠΠ Π±Π΅ΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΈΡΡΠ°. ΠΠ°Π½Π½ΡΠ΅ Π±ΡΡΡΡΡΡ ΠΎΠ±ΡΠΈΠ΅ ΠΏΠΎ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΡ (Π½Π΅ ΠΏΠΎ Π°ΡΡΠΈΠΊΠ»Ρ), 2 ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ° ΠΠΠΠ ΠΈ 2 ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ° ΠΠ Π’Π°ΠΊ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΡΡΠΈΡ
ΡΠ°Π±Π»ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ°Π±ΠΎΡΠ°Π΅ΠΌΡΡ Π΅ΡΡΡ Π΅ΡΠ΅ ΡΡΠ΄ ΡΠ°Π±Π»ΠΈΡ ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° API
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΠ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠ²ΠΎΡ crm ΡΠΈΡΡΠ΅ΠΌΠ°, Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° ΠΠ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡ VK token, Π°Π΄ΠΌΠΈΠ½ Π½Π°ΠΆΠΈΠΌΠ°Π» Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π² Π²ΠΊ, ΠΈ ΠΏΠΎΡΠ»Π΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ VK Π±ΡΠ°Π»ΡΡ ΡΠΎΠΊΠ΅Π½. Π‘Π°ΠΌΠ° crm Π½Π° electron, js ΠΡΠΎΠ±Π»Π΅ΠΌΡ: Π² Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠΉ API, Π½Π΅ΡΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΡΡ
Π½Π° ΡΠΎΡΡΠΌΠ°Ρ
ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠΈΠΏΠ° Standalone ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΡΠΆΠ΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΡΠΈΠΌ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π» ΠΈ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΉΡΠ΅ ΡΠ²ΠΎΡ.