Π Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈΡ ΡΠ²ΡΡ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ - Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΄ΡΡΠ³ Π΅Π·ΠΈΠΊ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²Π΅ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ, ΡΠ° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΈΡΠ΅, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ° ΠΏΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ Π½Π°ΡΠΈΠ½, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠ΅ΡΠ°ΠΌΠΎΡΡΠΎΠ·ΠΈ. ΠΠ½Π΅Ρ ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΡΠΎΡΠΌΠ°Ρ Π·Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΈΡΠ΅ ΠΈ ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ.

ΠΠΎΡΡΡΡ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ ΠΎΡ ΠΈ
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ. ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Acronis Cyber Cloud ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ ΠΎΡΡΡΠ²Π΅ΠΌ ΠΎΡ ΡΡΡ . ΠΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ· Π΅ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π°.
ΠΠΎ ΠΊΠΎΠ³Π°ΡΠΎ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΡΡΠ°Π²Π° ΡΠ΅Π΄ΠΎΠ²Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ, Π½Π΅Π²ΠΎΠ»Π½ΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠΈΡΠ»ΡΡ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π΅, ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ (ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ) ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΡΡ) ΡΡΡΠ±Π²Π° Π΄Π° ΡΠΈ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ, ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π½Π΅ΡΠ° ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Π½Π°ΡΠΈΠ½ ΠΈ ΡΠ΅ Π±Π΅Π· ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ ΡΡΡΠ±Π²Π° ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄Π° ΠΎΡΠ΄Π΅Π»Ρ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΡΡ Π½ΠΎΡΠΎ Π²Π·Π΅ΠΌΠ°Π½Π΅.

Π‘Ρ
Π΅ΠΌΠ°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ Π½Π° Amazon ΠΎΡ Π½Π° ΠΠ΅ΡΠ½Π΅Ρ ΠΠΎΠ³Π΅Π»ΠΈΡ, CTO Π½Π° Amazon
ΠΠ°ΠΊΠ²Π° Π΅ Π΄ΠΈΠ»Π΅ΠΌΠ°ΡΠ°? ΠΠ΅ ΡΠ°ΠΊΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΄Π²Π° Π½Π°ΡΠΈΠ½Π° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ - HTTP Rest ΠΈ gRPC ΠΎΡ Google. ΠΠ΅ ΠΆΠ΅Π»Π°Π΅ΠΉΠΊΠΈ Π΄Π° Π±ΡΠ΄Π΅ΠΌ Π²ΡΠ²Π»Π΅ΡΠ΅Π½ΠΈ Π² ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈΡ ΡΡΠ΅ΠΊ Π½Π° Google, ΠΈΠ·Π±ΡΠ°Ρ
ΠΌΠ΅ HTTP Rest. ΠΠ½ΠΎΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΈΡΠ΅ Π·Π° HTTP REST Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Ρ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄Π²Π°ΡΠ° ΡΠΎΡΠΌΠ°ΡΠ°: RAML ΠΈ OAS, ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ Swagger. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π²ΡΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ° Π΅ΠΊΠΈΠΏ Π΅ ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ ΠΏΡΠ΅Π΄ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈΠ·Π±ΠΎΡ Π² ΠΏΠΎΠ»Π·Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅. ΠΠΎ, ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠΎΠ·ΠΈ ΠΈΠ·Π±ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π΅Π½.
ΠΠ°ΡΠΎ ΡΠ° Π½ΡΠΆΠ½ΠΈ Π°Π½ΠΎΡΠ°ΡΠΈΠΈ?
ΠΠ½ΠΎΡΠ°ΡΠΈΡ Π΅ Π½ΡΠΆΠ½Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π²ΡΠ½ΡΠ½ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Ρ Π²Π°ΡΠΈΡ ΡΠ΅ΡΠ²ΠΈΡ ΡΡΠ΅Π· Π½Π΅Π³ΠΎΠ²ΠΈΡ HTTP ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π’ΠΎΠ΅ΡΡ, Π½Π° Π±Π°Π·ΠΎΠ²ΠΎ Π½ΠΈΠ²ΠΎ Π°Π½ΠΎΡΠ°ΡΠΈΡΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° ΠΏΠΎΠ½Π΅ ΡΠΏΠΈΡΡΠΊ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ, ΡΠ΅Ρ Π½ΠΈΡΠ΅ HTTP ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΡΠ΅Π»Π° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΠΈΠ·Π±ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π·Π° Π²ΡΡΡΠ°Π½Π΅ ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ. ΠΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π²Π°ΠΆΠ΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Π΅ ΠΈ ΡΡΡ Π½ΠΎΡΠΎ ΡΠ»ΠΎΠ²Π΅ΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ("ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ, Π°ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠΎΠ·ΠΈ query ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΡΠΌ Π·Π°ΡΠ²ΠΊΠ°ΡΠ°?", "Π² ΠΊΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΠ΅ Π²ΡΡΠ½Π΅ ΠΊΠΎΠ΄ 400?")
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, ΡΠΎΠ²Π΅ΠΊ ΠΈΡΠΊΠ° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΠ»Π·ΠΈ ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ Π°Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° RAML/Swagger ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΊΠ°ΠΊΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ, ΡΠ°ΠΊΠ° ΠΈ ΡΡΡΠ²ΡΡΠ΅Π½ ΠΊΠΎΠ΄ Π½Π° ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π° ΠΈ Π΄Π° Ρ ΠΊΠ°ΡΠΈΡΠ΅ Π½Π° Π²Π°ΡΠΈΡ developer ΠΏΠΎΡΡΠ°Π» :)

ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°
ΠΠΎ-ΡΡΠ΄ΠΊΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΡΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ. ΠΠΊΠΎ ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΈ Π°Π½ΠΎΡΠ°ΡΠΈΡ, ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π°Π²ΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΡΠ²ΠΈΡΠ° Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ Π½Π° Π²Ρ ΠΎΠ΄Π°. ΠΡΡΡΠ° Π»ΠΈ ΡΠ΅ΡΠ²ΠΈΠ·ΡΡ ΠΊΠΎΠ΄ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π΅ ΠΎΠΏΠΈΡΠ°Π½ Π² Π°Π½ΠΎΡΠ°ΡΠΈΡΡΠ°? Π©Π΅ ΠΌΠΎΠΆΠ΅ Π»ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ ΡΠ²Π½ΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ?
ΠΠΎ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΡΠ°ΠΌΠΈΡΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ, Π½ΠΎ ΠΈ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π°. Π’ΠΎΠ΅ΡΡ, Π°ΠΊΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π΅ ΠΎΠΏΠΈΡΠ°Π» Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, Π½Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅ Π²Π½Π΅Π΄ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ.
ΠΠ° ΡΠ°Π±ΠΎΡΠ° Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈ RAML, ΠΈ OAS ΠΈΠΌΠ°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ, Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΈ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ().
Π ΠΎΠ±ΡΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΠΎΠ»Π΅ΡΠΎ Π·Π° ΡΠ²ΠΎΡΡΠ΅ΡΡΠ²ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π·Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ Π΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ... ΠΏΠΎΠ½Π΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ½ΠΎ
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΡΠ°Π»Π΅ΠΆ Ρ ΡΡΠΎΠΉΠ½ΠΈΡΠ°
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° Π½Π°ΡΠΎΠΊΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² Acronis Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Acronis Cyber Platform. Acronis Cyber Platform ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π½ΠΎΠ²ΠΈ ΡΠΎΡΠΊΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ Ρ Acronis Cyber Cloud ΠΈ Π°Π³Π΅Π½ΡΡΠΊΠ°ΡΠ° ΡΠ°ΡΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π°ΡΠΈΡΠ΅ Π²ΡΡΡΠ΅ΡΠ½ΠΈ API, ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² RAML, Π½ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ²Π°Ρ Π°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° API ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π° Π²ΡΠΏΡΠΎΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡΠ°: ΠΊΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ Π·Π° Π°Π½ΠΎΡΠ°ΡΠΈΠΈ Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ Π·Π° Π½Π°ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ°?
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ° Π΄Π²Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ β Π½Π°ΠΉ-ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ RAML ΠΈ Swagger (ΠΈΠ»ΠΈ OAS). ΠΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈΡΠ΅ ΡΠ° ΠΏΠΎΠ½Π΅ 3 ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅.
ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, ΠΈΠΌΠ°ΠΌΠ΅ RAML β ΠΌΠΎΡΠ΅Π½ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π΅Π·ΠΈΠΊ. Π Π½Π΅Π³ΠΎ Π΅ Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠΎΠ·ΠΈ ΡΠΎΡΠΌΠ°Ρ Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ β ΡΠΎΠ΅ΡΡ Π½Π΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΄ΡΠΊΡ, Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ Ρ ΠΎΠ±ΡΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ β ΡΡ Π΅ΠΌΠΈ Π·Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ, ΡΠ΅Π»Π° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π° RAML, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Mulesoft, ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΠ° Open API, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π° Ρ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° . ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° RAML ΡΠΏΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ ΡΠΈ. ΠΠ° Π΄Π° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΠ΅ΡΠΎ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Linux ΡΠ° ΠΎΡΠΈΡΠ»ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π² Microsoft. Π’Π°ΠΊΠ°Π²Π° ΡΠΈΡΡΠ°ΡΠΈΡ ΡΡΠ·Π΄Π°Π²Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Swagger, ΠΊΠΎΠΉΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° β ΡΡΠ΅ΡΠ° Π²Π΅ΡΡΠΈΡ β ΠΏΠΎΡΡΠΈ Π½Π°ΡΡΠΈΠ³Π½Π° RAML ΠΏΠΎ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ.
ΠΠΊΠΎ Π½Π΅ Π±Π΅ΡΠ΅ Π΅Π΄Π½ΠΎ Π½ΠΎ...
ΠΠ°ΠΊΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, Π΄Π°Π»Π΅Ρ Π½Π΅ Π²ΡΠΈΡΠΊΠΈ open-source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ OAS 3.0. ΠΠ° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅ Π½Π° Go Π½Π°ΠΉ-ΠΊΡΠΈΡΠΈΡΠ½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΡΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° Π°Π΄Π°ΠΏΡΠ°ΡΠΈΡ Π½Π° ΠΊΡΠΌ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ°. ΠΠ±Π°ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Swagger 2 ΠΈ Swagger 3 β . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ΅ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅:
- ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡ Π΅ΠΌΠΈΡΠ΅ Π·Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
- ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°ΡΠ° Π½Π° JSON Schema
- ΡΠ°Π·ΡΠΈΡΡΠ²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠΈ
Π‘ΠΈΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°: ΠΏΡΠΈ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ RAML, Swagger 2 ΠΈ Swagger 3 ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ. ΠΡΠΈ ΡΠΎΠ²Π° ΡΠ°ΠΌΠΎ Swagger 2 ΠΈΠΌΠ° Π΄ΠΎΠ±ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Ρ OpenSource. RAML Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΠ²ΠΊΠ°Π²β¦ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½, Π° Swagger 3 ΡΠ»Π°Π±ΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ»ΠΈ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ, ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ° Π΄ΠΎΡΡΠ° ΡΠΊΡΠΏΠΈ.
ΠΡΠΈ ΡΠΎΠ²Π°, Π°ΠΊΠΎ Π² Swagger ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΡΠ½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΡΠΎ Π³ΠΎΡΠΎΠ² ΠΏΠΎΡΡΠ°Π» , Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΡΠΈ Π°Π½ΠΎΡΠ°ΡΠΈΡ ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ Π½Π΅ΠΉΠ½Π°ΡΠ° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, Π²ΡΡΠ·ΠΊΠΈ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Π·Π° ΠΏΠΎ-ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ RAML ΡΠ°ΠΊΠ°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π½ΡΠΌΠ°. ΠΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΡΡΠΈ Π½Π΅ΡΠΎ ΡΡΠ΅Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Π² GitHub, Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ Π°Π½Π°Π»ΠΎΠ³ ΠΈ Π΄Π° ΡΠ΅ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π½ΡΠΊΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠΎΡΡΠ°Π»Π°, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° Π±Π°Π·ΠΎΠ²ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ Π½ΡΠΆΠ΄ΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, swagger Π΅ ΠΏΠΎ-
Π±Π΅Π·ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅Π½ ΠΠ°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ RAML, ΠΊΠ°ΡΠΎ Ρ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π² Π΅Π·ΠΈΠΊ, ΠΈ Π½Π°ΠΊΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ Π½Π΅ΡΠ°ΡΠ° ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΡΡΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠΈΠ»ΠΈΡΠ°
ramlfications
Π² ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ RAML 0.8. Π’Π°ΠΊΠ° ΡΠ΅ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° Π΄Π° "ΡΡΠ²ΠΎΡΠ²Π°" RAML Π²Π΅ΡΡΠΈΠΈ 1.0.
ΠΠΎ Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π΅ Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅?
- ΠΠ° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ Π·Π°Π΄Π°ΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΄Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅:
- β Π²Π΅ΡΠ΅ Π½Π΅ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°. Π ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π½Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΠΌΠ΅, ΡΠ΅ ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΈ RAML-ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° "ΡΠ°Π·ΠΏΠΈΠ»Π΅Π½ΠΈ" Π² Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π’Π°Π·ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° JavaScript ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½ΠΎΡΠΎ Π΄ΡΡΠ²ΠΎ. ΠΠΎΡΠ°Π΄ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π°ΡΠ° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄ ΡΡΠ°Π²Π° ΡΠ»ΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° Π½Π΅ Π³ΡΠ±ΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ²Π΅ Π½Π° ΡΠΌΠΈΡΠ°ΡΠ°ΡΠ° ΡΡΠΈΠ»ΠΈΡΠ°. β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΡ ΡΡΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΠΈΡΠ°, ΡΠ΅ Π΅ Π³ΠΎΡΠΎΠ² Π΄Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ° Π²ΡΠΈΡΠΊΠΎ ΠΈ Π²ΡΡΠΊΠ°ΠΊ, ΠΈ ΡΠΎ Π² Π΄Π²Π΅ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ. ΠΡΠΌ Π΄Π½Π΅ΡΠ½Π° Π΄Π°ΡΠ° Π΅ ΠΎΠ±ΡΠ²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° RAML 0.8, RAML 1.0 ΠΈ Swagger 2.0. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅, ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ Π±Π΅ΡΠ΅ , ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π² Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ Π½ΠΎΠ²ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ Π±ΡΡΠ·ΠΎ. ΠΠΎ Π·Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ.
Π ΡΠΎΠ²Π° Π½Π΅ ΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ ΠΌΠ΅. ΠΠ΄Π½Π° ΠΎΡ ΡΡΡΠΏΠΊΠΈΡΠ΅ Π² Π½Π°ΡΠΈΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΡΠΎΠ²Π°, Π΄Π°Π»ΠΈ RAML ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π΅ ΠΊΠΎΡΠ΅ΠΊΡΠ΅Π½ ΡΠΏΡΡΠΌΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ°. ΠΠ·ΠΏΡΠΎΠ±Π²Π°Ρ ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°. Π£ΡΡΠ΄Π²Π°ΡΠΎ Π΅, Π½ΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ ΠΎΠΏΠ»Π°ΠΊΠ²Π°Ρ Π° ΠΎΡ Π½Π°ΡΠΈΡΠ΅ Π°Π½ΠΎΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΡΠ° ΠΈ Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π΅ΡΠΌΠ΅ΡΡΠ½ΠΈ Π΄ΡΠΌΠΈ. Π Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ :).
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ ΡΠΏΡΡΡ ΠΌΠ΅ Π½Π° Π²Π΅ΡΠ΅ ΠΎΡΡΠ°ΡΡΠ» ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ (ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΏΠ°Π΄Π° Π±Π΅Π· ΠΏΡΠΈΡΠΈΠ½Π°, ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ). Π’Π°ΠΊΠ° ΡΠ΅ Π½Π΅ Π½Π°ΠΌΠ΅ΡΠΈΡ ΠΌΠ΅ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ΡΠΈΠΌ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΏΠΎ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·Π° Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΡ ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. Π Π±ΡΠ΄Π΅ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ OpenSource ΡΡΠ΅Π΄ΡΡΠ²Π°ΡΠ° ΡΡΠ°Π½Π°Ρ ΠΏΠΎ-ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½ΠΈ, ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ Π·Π°Π΄Π°ΡΠ°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ, ΡΠ΅ ΡΡΠ°Π½Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ. Π Π·Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ ΠΈ ΡΡΡΠ΄ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ Π·Π° 'Π΄ΠΎΠΎΠΏΡΠ°Π²ΡΠ½Π΅' Π½ΠΈ ΡΠ΅ ΡΡΠΎΡΠΈΡ Π° ΠΏΠΎ-Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΎΡ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘Π»Π΅Π΄ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°, Π½ΠΈ ΡΠ΅ ΠΏΡΠΈΠΈΡΠΊΠ° Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ ΠΎΠΏΠΈΡ ΠΈ Π΄Π° ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅ΠΌ, ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΎΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ, ΡΡΡΠ±Π²Π° ΡΡΠ½ΠΎ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ ΠΈ ΠΊΠ°ΠΊΡΠ² Π±ΡΠ΄ΠΆΠ΅Ρ ΡΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° Π²Π»ΠΎΠΆΠΈΡΠ΅. ΠΠΊΠΎ Π·Π°Π±ΡΠ°Π²ΠΈΠΌ Π·Π° OpenSource, Π²Π΅ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ. ΠΠΎ ΡΠ΅ ΡΠ° ΡΠΊΡΠΏΠΈ, Π° ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° - ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠΈ. ΠΠ° Π³ΠΎΠ»ΡΠΌΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΡΠ΅Π·ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ ΡΠ° ΠΏΠΎΠ½ΠΎΡΠΈΠΌΠΎ, Π½ΠΎ Π·Π° ΡΡΠ°ΡΡΠ°ΠΏ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°Π½Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° ΡΠ΅ΠΆΠ΅ΡΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅ΡΠ΅ Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Swagger 2, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΠΊΡΠ°ΡΠΈΠ² API, Π΄ΠΎΠΊΠ°ΡΠΎ Π² RAML ΡΠ΅ ΡΡΡΠ±Π²Π° ΡΠ°ΠΌΠΈ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ°.
ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-ΡΠΈΡΠΎΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π½ΡΠΆΠ΄Π°ΡΠ° ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π° ΡΠ΅ ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ Π΅ Π΄ΠΎΠ±ΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, Π·Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΈΠ·Π±ΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈΡΠ΅ Π²ΠΈ Π² Π±ΡΠ΄Π΅ΡΠ΅.
ΠΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΏΡΠΈΠ·Π½Π°Π΅ΠΌ, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΄Π½Π΅Ρ, Π½Π΅ ΡΠ° ΡΡΠ²ΡΡΡΠ΅Π½ΠΈ. Π Π·Π°ΡΠΎΠ²Π°, Π°ΠΊΠΎ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° ΠΈΠΌΠ° ΡΠ΅Π½ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΠΈΡΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ RAML, Π·Π°ΡΠΎΡΠΎ "ΡΠΎΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²ΠΎ ΠΈΠ·ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΈΡΠ»ΠΈΡΠ΅", ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ Swagger, Π·Π°ΡΠΎΡΠΎ "Π΅ ΠΏΠΎ-ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ" β Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° Π³ΠΈ ΠΎΡΡΠ°Π²ΠΈΠΌ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π² ΡΠΎΠ²Π°, Ρ ΠΊΠΎΠ΅ΡΠΎ ΡΠ° ΡΠ²ΠΈΠΊΠ½Π°Π»ΠΈ ΠΈ ΠΈΡΠΊΠ°Ρ, Π·Π°ΡΠΎΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΡΡ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠ°.
Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ Π½Π°ΡΠΈΡ ΠΎΠΏΠΈΡ, Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠΎΠ²Π΅ ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΈ β ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π½Π°ΡΠ°ΡΠ° RAML-Swagger Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΊΠ°ΠΊΠ²Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΠΌΠ΅ ΠΎΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΈ ΠΊΠ°ΠΊ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠΈ.
Π‘Π°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ Π² Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°. , ΠΌΠΎΠ»Ρ.
ΠΠΎΠΉ Π΅Π·ΠΈΠΊ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π·Π° Π°Π½ΠΎΡΠ°ΡΠΈΠΈ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅?
RAML 0.8
RAML 1.0
Swagger 2
OAS3 (ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΎΡΠ΅ ΠΊΠ°ΡΠΎ)
Blueprint
ΠΡΡΠ³
ΠΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ
ΠΠ»Π°ΡΡΠ²Π°Ρ
Π° 100 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΡΠ·Π΄ΡΡΠΆΠ°Ρ
Π° ΡΠ΅ 24 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
