Π’Π°ΠΊΠ° Ρ‡Π΅ всС ΠΏΠ°ΠΊ RAML ΠΈΠ»ΠΈ OAS (Swagger)?

Π’ динамичния свят Π½Π° микросСрвиситС всичко ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ - всСки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС прСнаписан Π½Π° Π΄Ρ€ΡƒΠ³ Π΅Π·ΠΈΠΊ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²Π΅ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ. ЕдинствСното, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° останС Π½Π΅ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ, са ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΈΡ‚Π΅, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС взаимодСйства с микросСрвиса ΠΏΠΎ постоянСн Π½Π°Ρ‡ΠΈΠ½, нСзависимо ΠΎΡ‚ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚Π°ΠΌΠΎΡ€Ρ„ΠΎΠ·ΠΈ. ДнСс Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° нашия ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π·Π° описаниС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΈΡ‚Π΅ ΠΈ Ρ‰Π΅ сподСлим Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ‚Π΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ.

Π’Π°ΠΊΠ° Ρ‡Π΅ всС ΠΏΠ°ΠΊ RAML ΠΈΠ»ΠΈ OAS (Swagger)?

ΠŸΠΎΡΡ‚ΡŠΡ‚ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ ΠΎΡ‚ Анна ΠœΠ΅Π»Π΅Ρ…ΠΎΠ²Π° ΠΈ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π›Π°ΠΏΠ°Ρ‚ΠΈΠ½

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠΈ. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Acronis Cyber Cloud Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС ΠΎΡ‚ΡŠΡ€Π²Π΅ΠΌ ΠΎΡ‚ тях. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° микросСрвиз Π΅ нСвъзмоТно Π±Π΅Π· Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°, ΠΊΠΎΠΉΡ‚ΠΎ прСдставлява интСрфСйса Π½Π° микросСрвиза.

Но ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° става Ρ€Π΅Π΄ΠΎΠ²Π½Π° активност, Π½Π΅Π²ΠΎΠ»Π½ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρˆ Π΄Π° сС замисляш Π·Π° оптимизация Π½Π° процСса. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π΅, Ρ‡Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ (ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΡŠΡ‚) ΠΈ имплСмСнтацията (ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΠ·ΡŠΡ‚) трябва Π΄Π° си ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‚, Ρ‡Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ трябва Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ Π½Π΅Ρ‰Π° ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ Π½Π°Ρ‡ΠΈΠ½ ΠΈ Ρ‡Π΅ Π±Π΅Π· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° всички Ρ‚Π΅Π·ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всяка ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‰Π΅ трябва ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΄Π° отдСля Π²Ρ€Π΅ΠΌΠ΅ Π·Π° тяхното Π²Π·Π΅ΠΌΠ°Π½Π΅.

Π’Π°ΠΊΠ° Ρ‡Π΅ всС ΠΏΠ°ΠΊ RAML ΠΈΠ»ΠΈ OAS (Swagger)?
Π‘Ρ…Π΅ΠΌΠ°Ρ‚Π° Π½Π° микросСрвиситС Π½Π° Amazon ΠΎΡ‚ Ρ‚Π²ΠΈΡ‚ Π½Π° Π’Π΅Ρ€Π½Π΅Ρ€ ВогСлис, CTO Π½Π° Amazon
Каква Π΅ Π΄ΠΈΠ»Π΅ΠΌΠ°Ρ‚Π°? Π”Π΅ Ρ„Π°ΠΊΡ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° взаимодСйствиС Π½Π° микросСрвиситС - HTTP Rest ΠΈ gRPC ΠΎΡ‚ Google. НС ΠΆΠ΅Π»Π°Π΅ΠΉΠΊΠΈ Π΄Π° бъдСм Π²ΡŠΠ²Π»Π΅Ρ‡Π΅Π½ΠΈ Π² тСхнологичния стСк Π½Π° Google, ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ HTTP Rest. АнотациитС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΈΡ‚Π΅ Π·Π° HTTP REST Π½Π°ΠΉ-чСсто сС описват с Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Π²Π°Ρ‚Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°: RAML ΠΈ OAS, ΠΏΡ€Π΅Π΄ΠΈ извСстСн ΠΊΠ°Ρ‚ΠΎ Swagger. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ всяка Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰Π° Π΅ΠΊΠΈΠΏ Π΅ ΠΈΠ·ΠΏΡ€Π°Π²Π΅Π½ ΠΏΡ€Π΅Π΄ нСобходимостта Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΈΠ·Π±ΠΎΡ€ Π² ΠΏΠΎΠ»Π·Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚ стандартитС. Но, ΠΊΠ°ΠΊΡ‚ΠΎ сС ΠΎΠΊΠ°Π·Π°, Ρ‚ΠΎΠ·ΠΈ ΠΈΠ·Π±ΠΎΡ€ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π΅Π½.

Π—Π°Ρ‰ΠΎ са Π½ΡƒΠΆΠ½ΠΈ Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ?

Анотация Π΅ Π½ΡƒΠΆΠ½Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π²ΡŠΠ½ΡˆΠ½ΠΈΡΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» лСсно Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ с вашия сСрвис Ρ‡Ρ€Π΅Π· нСговия HTTP интСрфСйс. ВоСст, Π½Π° Π±Π°Π·ΠΎΠ²ΠΎ Π½ΠΈΠ²ΠΎ анотацията трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΠΎΠ½Π΅ списък Π½Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ рСсурси, Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ HTTP ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, Ρ‚Π΅Π»Π° Π½Π° заявкитС, изброяванС Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ заглавия, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ. Π˜Π·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Π°ΠΆΠ΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Π½Π° анотацията Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π° Π΅ ΠΈ тяхното словСсно описаниС ("ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ сС случи, Π°ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ·ΠΈ query ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ към заявката?", "Π² какъв случай Ρ‰Π΅ сС Π²ΡŠΡ€Π½Π΅ ΠΊΠΎΠ΄ 400?")

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° голям Π±Ρ€ΠΎΠΉ микросСрвизи, Ρ‡ΠΎΠ²Π΅ΠΊ иска Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΠΎΠ»Π·ΠΈ ΠΎΡ‚ написанитС Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. НапримСр, Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° RAML/Swagger ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΊΠ°ΠΊΡ‚ΠΎ клиСнтски, Ρ‚Π°ΠΊΠ° ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ Π±Ρ€ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡ†ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ докумСнтация Π·Π° микросСрвиза ΠΈ Π΄Π° я ΠΊΠ°Ρ‡ΠΈΡ‚Π΅ Π½Π° вашия developer ΠΏΠΎΡ€Ρ‚Π°Π» :)

Π’Π°ΠΊΠ° Ρ‡Π΅ всС ΠΏΠ°ΠΊ RAML ΠΈΠ»ΠΈ OAS (Swagger)?
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° структурирано описаниС Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°

По-рядко сС срСща ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° тСстванС Π½Π° микросСрвизи Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° описания Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ. Ако стС написали ΠΈ анотация, ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ автотСст, ΠΊΠΎΠΉΡ‚ΠΎ провСрява адСкватността Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΡΡŠΡ€Π²ΠΈΡΠ° с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄Π°. Π’Ρ€ΡŠΡ‰Π° Π»ΠΈ ΡΠ΅Ρ€Π²ΠΈΠ·ΡŠΡ‚ ΠΊΠΎΠ΄ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π΅ описан Π² анотацията? Π©Π΅ ΠΌΠΎΠΆΠ΅ Π»ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ явно Π½Π΅Π²Π΅Ρ€Π½ΠΈ Π΄Π°Π½Π½ΠΈ?

По-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ качСствСната рСализация Π½Π΅ само Π½Π° самитС Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ, Π½ΠΎ ΠΈ Π½Π° инструмСнтариума Π·Π° визуализация Π½Π° Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈΡ‚Π΅ позволява Π΄Π° сС опрости Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с микросСрвиза. ВоСст, Π°ΠΊΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡŠΡ‚ качСствСно Π΅ описал Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°, Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° основа Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Ρ‰Π΅ внСдрят сСрвиса Π² Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ Π±Π΅Π· Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ.

Π—Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ инструмСнти ΠΈ RAML, ΠΈ OAS ΠΈΠΌΠ°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° добавянС Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ, Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΈ ΠΎΡ‚ стандарта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠ° сС ΠΏΡ€Π°Π²ΠΈ Π² OAS).

Π’ ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Π·Π° творчСство Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° микросСрвизи Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ... ΠΏΠΎΠ½Π΅ Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½ΠΎ

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Ρ€Π°Π»Π΅ΠΆ с усойница

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° основна насока Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² Acronis Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Acronis Cyber Platform. Acronis Cyber Platform прСдставлява Π½ΠΎΠ²ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° интСграция Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни с Acronis Cyber Cloud ΠΈ агСнтската част. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π°ΡˆΠΈΡ‚Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ API, описани Π² RAML, Π½ΠΈ удовлСтворяваха, нСобходимостта ΠΎΡ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° API ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ€Π°: ΠΊΠΎΠΉ стандарт Π·Π° Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π΅ Π½Π°ΠΉ-добрият Π·Π° Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°?

ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ изглСТдашС, Ρ‡Π΅ ΠΈΠΌΠ° Π΄Π²Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” Π½Π°ΠΉ-разпространСнитС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ RAML ΠΈ Swagger (ΠΈΠ»ΠΈ OAS). Но Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ сС ΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈΡ‚Π΅ са ΠΏΠΎΠ½Π΅ 3 ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅.

ΠžΡ‚ Π΅Π΄Π½Π° страна, ΠΈΠΌΠ°ΠΌΠ΅ RAML – ΠΌΠΎΡ‰Π΅Π½ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ Π΅Π·ΠΈΠΊ. Π’ Π½Π΅Π³ΠΎ Π΅ Π΄ΠΎΠ±Ρ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° йСрархия ΠΈ наслСдяванС, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΅ ΠΏΠΎ-подходящ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ описания β€” тоСст Π½Π΅ Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π° ΠΌΠ½ΠΎΠ³ΠΎ микросСрвизи с ΠΎΠ±Ρ‰ΠΈ части ΠΎΡ‚ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ β€” схСми Π·Π° аутСнтификация, Π΅Π΄Π½Π°ΠΊΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ, Ρ‚Π΅Π»Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ.

Но Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ Π½Π° RAML, компания Mulesoft, сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈ към консорциума Open API, ΠΊΠΎΠΉΡ‚ΠΎ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Swagger. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π° RAML спря Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ си. Π—Π° Π΄Π° си прСдставитС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ, прСдставСтС си, Ρ‡Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‡ΠΈΡ‚Π΅ Π½Π° основнитС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Linux са ΠΎΡ‚ΠΈΡˆΠ»ΠΈ Π΄Π° работят Π² Microsoft. Π’Π°ΠΊΠ°Π²Π° ситуация създава прСдпоставки Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Swagger, ΠΊΠΎΠΉΡ‚ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΈ Π² послСдната β€” Ρ‚Ρ€Π΅Ρ‚Π° вСрсия β€” ΠΏΠΎΡ‡Ρ‚ΠΈ настигна RAML ΠΏΠΎ Π³ΡŠΠ²ΠΊΠ°Π²ΠΎΡΡ‚ ΠΈ функционалност.

Ако нС бСшС Сдно но...

ΠšΠ°ΠΊΡ‚ΠΎ сС ΠΎΠΊΠ°Π·Π°, Π΄Π°Π»Π΅Ρ‡ Π½Π΅ всички open-source инструмСнти са ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ Π΄ΠΎ вСрсия OAS 3.0. Π—Π° микросСрвизитС Π½Π° Go Π½Π°ΠΉ-ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Ρ‰Π΅ бъдС ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° адаптация Π½Π° go-swagger към Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° стандарта. ΠžΠ±Π°Ρ‡Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Swagger 2 ΠΈ Swagger 3 β€” Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½Π°. НапримСр, Π² Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° вСрсия Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅:

  • подобряват описаниСто Π½Π° схСмитС Π·Π° аутСнтификация
  • Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ°Ρ‚Π° Π½Π° JSON Schema
  • Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° добавянС Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ

Битуацията сС ΠΎΠΊΠ°Π·Π²Π° интСрСсна: ΠΏΡ€ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° стандарт трябва Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ RAML, Swagger 2 ΠΈ Swagger 3 ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π° само Swagger 2 ΠΈΠΌΠ° Π΄ΠΎΠ±Ρ€Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° инструмСнти с OpenSource. RAML Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡŠΠ²ΠΊΠ°Π²β€¦ ΠΈ слоТСн, Π° Swagger 3 слабо сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ общността, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‰Π΅ трябва Π΄Π° ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ инструмСнти ΠΎΡ‚ собствСна Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ»ΠΈ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, са доста скъпи.

ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ Π² Swagger ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ приятни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π³ΠΎΡ‚ΠΎΠ² ΠΏΠΎΡ€Ρ‚Π°Π» editor.swagger.io, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠ°Ρ‡ΠΈ анотация ΠΈ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π½Π΅ΠΉΠ½Π°Ρ‚Π° визуализация с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΈ описания, Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΈ зависимости, Π½ΠΎ Π·Π° ΠΏΠΎ-Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»Π΅Π½ ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ потрСбитСлски ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ RAML Ρ‚Π°ΠΊΠ°Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ няма. Π”Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈ Π½Π΅Ρ‰ΠΎ срСд ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ Π² GitHub, Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ Π°Π½Π°Π»ΠΎΠ³ ΠΈ Π΄Π° сС Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈ самостоятСлно. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка някой трябва Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΠΎΡ€Ρ‚Π°Π»Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π° Π±Π°Π·ΠΎΠ²ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈΠ»ΠΈ тСстови Π½ΡƒΠΆΠ΄ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π°, swagger Π΅ ΠΏΠΎ-

Π±Π΅Π·ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅Π½ ΠΈΠ»ΠΈ Π»ΠΈΠ±Π΅Ρ€Π°Π»Π΅Π½ - ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΎΡ‚ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ Π² ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈ Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° API first ΠΈ Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ Π½ΠΈΡ‚ΠΎ Π΅Π΄Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Π½Π° RAML, Π—Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с RAML, ΠΊΠ°Ρ‚ΠΎ с ΠΏΠΎ-гъвкав Π΅Π·ΠΈΠΊ, ΠΈ накрая ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Π½Π΅Ρ‰Π°Ρ‚Π° Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ€ΡŠΡ‡Π½ΠΎ. НапримСр, Π² Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°

ramlfications

Π² ΡŽΠ½ΠΈΡ‚-тСстовСтС, която ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° само RAML 0.8. Π’Π°ΠΊΠ° Ρ‡Π΅ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ приставки, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° Π΄Π° "усвоява" RAML вСрсии 1.0.

Но Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π΅ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅?

  1. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ сС Π·Π°ΠΏΠΎΠ·Π½Π°Ρ…ΠΌΠ΅ с дописванСто Π½Π° СкосистСмата ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ RAML, стигнахмС Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, Ρ‡Π΅ трябва Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ RAML Π² Swagger 2 ΠΈ Π²Π΅Ρ‡Π΅ Π² Π½Π΅Π³ΠΎ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ цялата автоматизация, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, тСстванС ΠΈ послСдваща оптимизация. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡŠΡ€ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π³ΡŠΠ²ΠΊΠ°Π²ΠΎΡΡ‚Ρ‚Π° Π½Π° RAML, ΠΈ инструмСнтариума Π½Π° общността ΠΎΡ‚ Swagger. Π—Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Π΄Π²Π° инструмСнта с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° осигурят ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅:
  2. oas-raml-converter – Π²Π΅Ρ‡Π΅ Π½Π΅ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°. Π’ процСса Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с нСя установихмС, Ρ‡Π΅ ΠΈΠΌΠ° Ρ€Π΅Π΄ΠΈΡ†Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ със слоТни RAML-ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са "Ρ€Π°Π·ΠΏΠΈΠ»Π΅Π½ΠΈ" Π² голям Π±Ρ€ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π’Π°Π·ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π΅ написана Π½Π° JavaScript ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° рСкурсивно ΠΎΠ±Ρ…ΠΎΠ΄ Π½Π° синтактичното Π΄ΡŠΡ€Π²ΠΎ. ΠŸΠΎΡ€Π°Π΄ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π°Ρ‚Π° типизация, Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ става слоТно, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π½Π΅ Π³ΡƒΠ±ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° писанС Π½Π° ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π½Π° ΡƒΠΌΠΈΡ€Π°Ρ‰Π°Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°. webapi-parser β€” инструмСнт ΠΎΡ‚ ΡΡŠΡ‰Π°Ρ‚Π° компания, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΈΡ€Π°, Ρ‡Π΅ Π΅ Π³ΠΎΡ‚ΠΎΠ² Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° всичко ΠΈ всякак, ΠΈ Ρ‚ΠΎ Π² Π΄Π²Π΅Ρ‚Π΅ посоки. Към днСшна Π΄Π°Ρ‚Π° Π΅ обявСна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° 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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster