[Systems Education] ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ API - OpenAPI + AsyncAPI (2024)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠΎΡΠΊΡΠΎΠΏ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ API Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ OpenAPI ΠΈ AsyncAPI, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ API
ΠΠ°Π΄Π°Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΎΡΠΊΡΠΎΠΏΠ°
ΠΡΠ±ΠΎΡ ΠΊΠ΅ΠΉΡΠ°, ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ UML-Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Use Case Π² PlantUML
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² JSON-ΡΠΎΡΠΌΠ°ΡΠ΅
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ REST-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ OpenAPI Π² SwaggerHub
ΠΡΠ°ΡΠΊΠΈΠΉ Π»ΠΈΠΊΠ±Π΅Π· ΠΏΠΎ Apache Kafka: Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° ΡΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΡΡΡΠΎΠ΅Π½Π°
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² PlantUML UML-Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ΅ΡΠ΅Π· Kafka
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Π½Π° Kafka (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠΎΠ², ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ, ΡΠΎΠΏΠΈΠΊΠΎΠ², ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ )
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ AsyncAPI Π² AsyncAPI Studio
ΠΠ΅ΠΉΡΡ Π²ΠΎΡΠΊΡΠΎΠΏΠ°:ΠΠ°Π½ΠΊΠ‘Π»ΡΠΆΠ±Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠΈΠ’ΡΡΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ‘Π»ΡΠΆΠ±Π° ΡΠ°ΠΊΡΠΈΠΠ»Ρ ΡΡΠ°ΡΡΠΈΡ Π² Π²ΠΎΡΠΊΡΠΎΠΏΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π²Π΅ΡΡΠΈ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π½Π° github.
ΠΠ²ΡΠΎΡ ΠΈ Π²Π΅Π΄ΡΡΠΈΠ΅:
ΠΠ²ΡΠΎΡ ΠΈ Π²Π΅Π΄ΡΡΠ°Ρ: ΠΠ½Π½Π° ΠΠΈΡΡΠ³ΠΎΠ²Π°
ΠΠ’Π, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π°Π½Π°Π»ΠΈΠ·Ρ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ‘ΠΠ½Π°Π»ΠΈΡΠΈΠΊ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΠ‘,Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² Systems.Education,ΠΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ Π¨ΠΊΠΎΠ»Ρ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π°Π½Π°Π»ΠΈΠ·Π°,ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΠ΅ΠΉ Π² Π¨ΠΊΠΎΠ»Π΅ ΠΠΎΠ»ΡΡΠΈΡ ΠΠ°Π½Π½ΡΡ Π ΠΠ’ Ρ 2009 Π³ΠΎΠ΄Π°ΠΠ΅Π΄ΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΎΡ: ΠΠΎΡ Π‘ΡΠ΅ΠΏΡΠ΅Π²Π°
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ RnD-Π΄Π΅ΠΏΠ°ΡΡΠ°ΠΌΠ΅Π½ΡΠ°, ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΡΠΠΏΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ 10 Π»Π΅Ρ;Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΡΠΎΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ ΡΠΈΠΌΠ»ΠΈΠ΄Π° Π² ΠΎΡΠ΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈ Π·Π°ΡΡΠ±Π΅ΠΆΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π·Π°ΠΊΠ°Π·Π½ΠΎΠΉ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π΄Π»Ρ Π²Π΅Π΄ΡΡΠΈΡ ΡΠΈΡΠ΅ΠΉΠ»Π΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ Π² ΡΡΠ΅ΡΠ΅ ΠΠΠ₯, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΡ;ΠΠΏΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ² Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ;Π£ΡΠ΅Π½ΠΎΠ΅ Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΡΠ΅Π½ΡΠ° ΠΏΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ΅ Ρ 2013 Π³ΠΎΠ΄Π°.
ΠΠΎΡΠΊΡΠΎΠΏ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ API Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ OpenAPI ΠΈ AsyncAPI, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ API
ΠΠ°Π΄Π°Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΎΡΠΊΡΠΎΠΏΠ°
ΠΡΠ±ΠΎΡ ΠΊΠ΅ΠΉΡΠ°, ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ UML-Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Use Case Π² PlantUML
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² JSON-ΡΠΎΡΠΌΠ°ΡΠ΅
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ REST-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ OpenAPI Π² SwaggerHub
ΠΡΠ°ΡΠΊΠΈΠΉ Π»ΠΈΠΊΠ±Π΅Π· ΠΏΠΎ Apache Kafka: Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° ΡΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΡΡΡΠΎΠ΅Π½Π°
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² PlantUML UML-Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ΅ΡΠ΅Π· Kafka
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Π½Π° Kafka (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΡΠ΅ΡΠΎΠ², ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ, ΡΠΎΠΏΠΈΠΊΠΎΠ², ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ )
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ AsyncAPI Π² AsyncAPI Studio
ΠΠ΅ΠΉΡΡ Π²ΠΎΡΠΊΡΠΎΠΏΠ°:ΠΠ°Π½ΠΊΠ‘Π»ΡΠΆΠ±Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠΈΠ’ΡΡΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ‘Π»ΡΠΆΠ±Π° ΡΠ°ΠΊΡΠΈΠΠ»Ρ ΡΡΠ°ΡΡΠΈΡ Π² Π²ΠΎΡΠΊΡΠΎΠΏΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π²Π΅ΡΡΠΈ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π½Π° github.
ΠΠ²ΡΠΎΡ ΠΈ Π²Π΅Π΄ΡΡΠΈΠ΅:
ΠΠ²ΡΠΎΡ ΠΈ Π²Π΅Π΄ΡΡΠ°Ρ: ΠΠ½Π½Π° ΠΠΈΡΡΠ³ΠΎΠ²Π°
ΠΠ’Π, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π°Π½Π°Π»ΠΈΠ·Ρ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ‘ΠΠ½Π°Π»ΠΈΡΠΈΠΊ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΠ‘,Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² Systems.Education,ΠΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ Π¨ΠΊΠΎΠ»Ρ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π°Π½Π°Π»ΠΈΠ·Π°,ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΠ΅ΠΉ Π² Π¨ΠΊΠΎΠ»Π΅ ΠΠΎΠ»ΡΡΠΈΡ ΠΠ°Π½Π½ΡΡ Π ΠΠ’ Ρ 2009 Π³ΠΎΠ΄Π°ΠΠ΅Π΄ΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΎΡ: ΠΠΎΡ Π‘ΡΠ΅ΠΏΡΠ΅Π²Π°
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ RnD-Π΄Π΅ΠΏΠ°ΡΡΠ°ΠΌΠ΅Π½ΡΠ°, ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΡΠΠΏΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ 10 Π»Π΅Ρ;Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΡΠΎΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ ΡΠΈΠΌΠ»ΠΈΠ΄Π° Π² ΠΎΡΠ΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈ Π·Π°ΡΡΠ±Π΅ΠΆΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π·Π°ΠΊΠ°Π·Π½ΠΎΠΉ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π΄Π»Ρ Π²Π΅Π΄ΡΡΠΈΡ ΡΠΈΡΠ΅ΠΉΠ»Π΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΉ Π² ΡΡΠ΅ΡΠ΅ ΠΠΠ₯, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΡ;ΠΠΏΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ² Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ;Π£ΡΠ΅Π½ΠΎΠ΅ Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΡΠ΅Π½ΡΠ° ΠΏΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ΅ Ρ 2013 Π³ΠΎΠ΄Π°.
favorite
0
star
0
