Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Swagger – умная докумСнтация вашСго RESTful web-API β€” ΠΎΠ±Π·ΠΎΡ€ Junior back-end developer-Π° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅

Команда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я сдСлала свои ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги Π½Π° ΠΏΠΎΠΏΡ€ΠΈΡ‰Π΅ написания ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, занималась Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ API ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° C# (для удобства Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ, скаТСм, Π±ΡƒΠΊΠ²ΠΎΠΉ E), ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ ΠΈ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ сСбя Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ с вСсьма ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стороны. И здСсь Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ Ρƒ юного ΠΏΠ°Π΄Π°Π²Π°Π½Π° ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ вопросов, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΆΠ΅ прСдставим сСбС, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½Π΅Π΅ Π²Ρ‹, скорСй всСго, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, писали собствСнныС web-API, Π½ΠΎ вряд Π»ΠΈ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΆΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Β«Π‘Π°ΠΌ создал – сам ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒΒ», ΠΈ Ссли Π²Π΄Ρ€ΡƒΠ³ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π±Ρ‹ заинтСрСсовала Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго API, Ρ‚ΠΎ Π²Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΠΊΠΈΠ½ΡƒΠ»ΠΈ Π±Ρ‹ Π΅ΠΌΡƒ pdf-Ρ„Π°ΠΉΠ» с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ инструкциСй (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ я Π±Ρ‹ сдСлала ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ). Β«Π“Π΄Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π°ΠΏΠΈΒ» β€” спросила я Ρ‚ΠΈΠΌΠ»ΠΈΠ΄Π° оТидая ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° тСкстовый Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. «Загляни Π² SwaggerΒ» β€” ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» ΠΎΠ½.

ΠŸΠΎΡΡ‚ΠΎΠΉ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊ получаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ, Π° API Π²Ρ‹ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСйчас?


ВсС Π²Π΅Ρ€Π½ΠΎ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ API Ρƒ E Π΄ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ сущСствовало. ЀактичСски вся Ρ€Π°Π±ΠΎΡ‚Π° происходила Ρ‡Π΅Ρ€Π΅Π· web-интСрфСйс, Π° back-end состоял ΠΈΠ· мноТСства Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… микросСрвисов, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ·Π²Π½Π΅ Π±Π΅Π· Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ понимания Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ, ΡƒΠΆ Π½Π΅ говоря ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сами ΠΎΠ½ΠΈ Π½Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ долю состояли ΠΈΠ· лСгаси. НуТно Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят нСпосрСдствСнно Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с сСрвСром, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌ красивоС ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ API. Π§Ρ‚ΠΎ для этого потрСбуСтся? ВсС, ΠΎ Ρ‡Π΅ΠΌ Π±Ρ‹Π»ΠΎ написано Ρ‡ΡƒΡ‚ΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅ – самим Π²Π·ΡΡ‚ΡŒ ΠΈ Π½Π°Π»Π°Π΄ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ со всСми Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ микросСрвисами, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΈ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, сдСлав это красиво, понятно, ΠΈ самоС Π³Π»Π°Π²Π½ΠΎΠ΅ – коммСрчСски ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ Swagger ΠΈ Π² Ρ‡Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠΈΡ€Ρƒ?

По сути Swagger – это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для спСцификации RESTful API. Π•Π³ΠΎ ΠΏΡ€Π΅Π»Π΅ΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы – Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Swagger UI, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ это выглядит:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ – ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠ΄Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса – Π² ΠΎΠ±Ρ‰Π΅ΠΌ, наглядно.

И ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ руководство для внСдрСния Swagger Π² ASP.NET Core
с нуля Π΅ΡΡ‚ΡŒ Π²ΠΎΡ‚ Π² этой этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ИдСя Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ отобраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² API, Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Swagger Codegen

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Если ΠΎΡ‡Π΅Π½ΡŒ хочСтся, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ сСрвСр ΠΏΠΎ спСцификации API Swagger, для этого Π½ΡƒΠΆΠ΅Π½ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Swagger-Codegen. ОписаниС ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π΄ΡƒΠΌΠ°ΡŽ, ΠΏΠΎΡΡΠ½ΡΡ‚ΡŒ Π½Π΅ трСбуСтся:

This is the Swagger Codegen project, which allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an OpenAPI Spec. Currently, the following languages/frameworks are supported:

ΠŸΡ€ΠΎΡ‡Π°Ρ информация, Π² частности инструкция ΠΏΠΎ использованию, прСдставлСна здСсь:
ΠžΠ±Ρ‰Π°Ρ информация

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Swagger: Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Для взаимодСйствия с любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ API. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ для внСшнСго взаимодСйствия ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ. Π’ любом случаС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ слСдуСт ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΅Π³ΠΎ спСцификации. Π­Ρ‚ΠΎ Π² Ρ‚ΠΎΠΌ числС Π½ΡƒΠΆΠ½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ быстрСС ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ вовлСкались Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π ΡƒΡ‡Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ занятиС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ Swagger. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π° основС ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ автоматичСски ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ спСцификации API.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Swagger?

Swagger β€” это Π½Π°Π±ΠΎΡ€ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ API. Благодаря Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ возмоТности REST API Π±Π΅Π· доступа ΠΊ ΠΊΠΎΠ΄Ρƒ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Swagger ΠΌΠΎΠΆΠ½ΠΎ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ.

Π’ 2015 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Swagger сдСлали ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ OpenAPI Initiative. Π’Π΅ΠΏΠ΅Ρ€ΡŒ сама спСцификация называСтся OpenAPI. Swagger β€” инструмСнтарий для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с OpenAPI, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² коммСрчСских ΠΈ нСкоммСрчСских ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ саму ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Swagger, Ρ‚ΠΎ это Π½Π΅ совсСм Π²Π΅Ρ€Π½ΠΎ.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ спСцификации OpenAPI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ YAML, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написан Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON. Π‘Π°ΠΌ ΠΏΠΎ сСбС ΠΎΠ½ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ JSON.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹

Swagger ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Π²Π° основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΡ‰Π΅. ΠœΡ‹ добавляСм зависимости Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ настройки ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Π‘Π°ΠΌ ΠΊΠΎΠ΄ ΠΈΠ·-Π·Π° этого ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ, докумСнтация Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ идСальной. Но Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ€Π΅ΡˆΠ΅Π½Π° β€” ΠΊΠΎΠ΄ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ синтаксис Swagger. Описания ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ YAML/JSON. МоТно ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Swagger Editor. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ качСствСнной ΠΈ кастомной для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ особСнностСй, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ всС Π½Π΅ Ρ‚Π°ΠΊ слоТно ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, это ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… усилий.

Swagger Core

Π­Ρ‚ΠΎ Java-рСализация спСцификации. Для Π΅Π΅ использования потрСбуСтся:

Для Π΅Π³ΠΎ внСдрСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ зависимости. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ β€” Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ maven-ΠΏΠ»Π°Π³ΠΈΠ½. Π’ΠΎΠ³Π΄Π° описания ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ» YAML. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ПослС настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для докумСнтирования ΠΊΠΎΠ΄Π°.

ΠΠ½Π½ΠΎΡ‚Π°Ρ†ΠΈΡΠ˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
@OperationДля описания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° HTTP
@ParameterДля прСдставлСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
@RequestBodyДля прСдставлСния Ρ‚Π΅Π»Π° запроса Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
@ApiResponseДля прСдставлСния Ρ‚Π΅Π»Π° ΠΎΡ‚Π²Π΅Ρ‚Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
@TagДля прСдставлСния Ρ‚Π΅Π³ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ опрСдСлСния OpenAPI
@ServerДля прСдставлСния сСрвСров ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ опрСдСлСния OpenAPI
@CallbackДля описания Π½Π°Π±ΠΎΡ€Π° запросов
@LinkДля прСдставлСния ссылки Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для ΠΎΡ‚Π²Π΅Ρ‚Π°
@SchemaДля опрСдСлСния Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
@ArraySchemaДля опрСдСлСния Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для Ρ‚ΠΈΠΏΠΎΠ² массивов
@ContentДля прСдставлСния схСмы ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² для ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°
@HiddenДля скрытия рСсурса, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ свойства

Swagger Codegen

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для автоматичСского гСнСрирования клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ API, Π·Π°Π³Π»ΡƒΡˆΠ΅ΠΊ сСрвСра ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ большоС количСство Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Swagger Codegen Π½Π° GitHub.

Π’ этом ΠΆΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

API ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ActionScript, Ada, Apex, Bash, C#, C++, Clojure, Dart, Elixir, Elm, Eiffel, Erlang, Go, Groovy, Haskell, Java (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java, Rest-assured), Kotlin, Lua, Node.js, Objective-C, Perl, PHP, PowerShell, Python, R, Ruby, Rust (rust, rust-server), Scala (akka, http4s, swagger-async-httpclient), Swift (2.x, 3.x, 4.x, 5.x), Typescript
Π—Π°Π³Π»ΡƒΡˆΠΊΠΈAda, C# (ASP.NET Core, NancyFx), C++ (Pistache, Restbed), Erlang, Go, Haskell (Servant), Java (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy, Play Framework, PKMST), Kotlin, PHP (Lumen, Slim, Silex, Symfony, Zend Expressive), Python (Flask), NodeJS, Ruby (Sinatra, Rails5), Rust (rust-server), Scala (Finch, Lagom, Scalatra)
Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈHTML, Confluence Wiki
Π€Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈApache2
Π”Ρ€ΡƒΠ³ΠΎΠ΅JMeter для Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ тСстирования

ΠŸΠ»ΡŽΡΡ‹ Swagger Codegen:

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Swagger Codegen Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ:

Как ΠΈ Π² случаС с Swagger Core, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ maven-ΠΏΠ»Π°Π³ΠΈΠ½ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ ΠΌΠΎΠΊ-сСрвСра.

Swagger Codegen прСдоставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Swagger UI

Swagger UI Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ рСсурсы OpenAPI ΠΈ взаимодСйствиС с Π½ΠΈΠΌΠΈ Π±Π΅Π· отобраТСния Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ инструмСнт Π±Π΅Ρ€Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ запросы для тСстирования API.

Swagger Editor

Π­Ρ‚ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для измСнСния ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ API Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π² Ρ€Π΅Π°Π»Ρ‚Π°ΠΉΠΌΠ΅. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ описания, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ΠŸΠ»ΡŽΡΡ‹ Swagger Editor:

Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ спСцификации OpenAPI 3.0 содСрТит восСмь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’Π½ΡƒΡ‚Ρ€ΠΈ этих Π²Π΅Ρ€Ρ…Π½Π΅ΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π»Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ рассмотрим всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ самоС Π²Π°ΠΆΠ½ΠΎΠ΅ свойство Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ спСцификации OpenAPI. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ info содСрТится основная информация ΠΎΠ± API: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, описаниС, вСрсия, ссылки Π½Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ, обслуТиваниС, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. НС всС свойства ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ заполнСнию.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² запросах Ρ‡Π΅Ρ€Π΅Π· API. Под Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ понимаСтся Ρ‡Π°ΡΡ‚ΡŒ адрСса, которая находится ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Servers ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, указывая нСсколько адрСсов для тСстирования:

Π’ этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ хранятся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ схСмы спСцификации. Π‘Ρ…Π΅ΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс составлСния описаний. НапримСр:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° эту схСму ΠΈ ΠΏΡ€ΠΈ нСобходимости Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Ρ‘ Π½ΠΎΠ²Ρ‹ΠΌΠΈ полями.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ для объявлСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ бСзопасности ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² API.

НапримСр, Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ бСзопасности OAuth2 :

Π’ этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. НапримСр:

Онлайн-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Swagger позволяСт ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ со спСцификациСй. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ интСрфСйс. Π‘Π»Π΅Π²Π° Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π° справа Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Swagger UI. Π’ Π½Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сразу ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

ИспользованиС Petstore для знакомства

Авторизация

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π½ΡƒΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Для этого Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Authorize ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ модСль Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ OAuth 2.0. На самом Π΄Π΅Π»Π΅, ΠΊΠΎΠ΄ прСдставлСн Π² дСмонстрационных цСлях, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π·Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π΅Ρ‚. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ просто Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ запроса

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ запрос ΠΊ API. Для этого:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

НапослСдок Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ запрос, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡ‚ΠΎΠΌΠ΅Ρ† создан.

Π’ ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ имя созданного Ρ€Π°Π½Π΅Π΅ ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‡Π΅Π½ΡŒ простой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, которая позволяСт быстро ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ доступных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ сайт ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ интСрфСйс Swagger Π½Π° страницу ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ рСсурса β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² справку ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ своСго сСрвиса.

Как выглядят сайты с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Swagger UI

Π’ΠΎΡ‚ Π΅Ρ‰Ρ‘ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Swagger:

ΠžΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π° сСбя Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Swagger. Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сам ΠΏΠΎ сСбС Swagger UI ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ взаимодСйствия. НСт смысла Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ пространныС описания, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ запросы ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ приходят.

Как Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Swagger UI Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ сайт

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Swagger UI Π½Π° свой сайт:

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ локально. Если всё Π² порядкС, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ dist (Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ) Π½Π° сСрвСр ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ сайт.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Swagger β€” ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ инструмСнт для создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ нСсколько Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ формирования ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ вСрсии Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, внСшним ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ со Swagger Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, посмотритС эти Π²ΠΈΠ΄Π΅ΠΎ.

НапримСр, Π²ΠΎΡ‚ Π΄ΠΎΠΊΠ»Π°Π΄ тСхничСского писатСля ΠΈΠ· «ЯндСкса» ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ API ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со Swagger. Много Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ практичСской части β€” Π² Π½Π΅ΠΉ дСлаСтся простой Swagger, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ отобраТаСтся Π² Swagger UI ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ классноС Π²ΠΈΠ΄Π΅ΠΎ β€” ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Swagger:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Swagger

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ соврСмСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм часто встаСт Π·Π°Π΄Π°Ρ‡Π° согласования ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйсов для взаимодСйствия ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Π’ послСднСС дСсятилСтиС ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ SPA ΠΈ thick ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ с сСрвСром Ρ‡Π΅Ρ€Π΅Π· API интСрфСйсы.

Если Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π΅Π± сайта происходила ΠΏΡƒΡ‚Π΅ΠΌ поэтапных ΠΏΡ€Π°Π²ΠΎΠΊ ΠΊΠΎΠ΄Π° сСрвСрной стороны для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ HTML Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ с Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° динамичСских Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΌΠ΅ΡΡ‚ΠΈΠ»Π°ΡΡŒ Π² сторону создания Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ API сСрвиса ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ мноТСства ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π² Ρ‚ΠΎΠΌ числС ΠΈ SPA) Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с этим API ΠΊΠ°ΠΊ с Π³Π»Π°Π²Π½Ρ‹ΠΌ источником Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… тСхнологиях (ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ·ΠΊΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… спСциалистов), ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° самых ΠΏΠ΅Ρ€Π²Ρ‹Ρ… этапах, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€” API интСрфСйс.

Вакая Сдиная Ρ‚ΠΎΡ‡ΠΊΠ° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ опрСдСлСния, этим Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся API спСцификация.

Один ΠΈΠ· самых популярных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ (ΠΌΠΈΠΊΡ€ΠΎ)сСрвисами β€” это REST

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ REST Π½Π΅ являСтся само ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ URL, HTTP ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΎΡ‚Π²Π΅Ρ‚Π°.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‚Π΅Π»Π° запроса. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ рСализация REST интСрфСйса базируСтся Π½Π° ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ΠΈ традициях, принятых Π² вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’ любом случаС, REST endpoints всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ описаны Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, доступном для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π”ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ области Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с модСлями, описанными Π² API-спСцификации. Π˜Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Π΅ совпадСния со структурами классов Π² ΠΊΠΎΠ΄Π΅ клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ со структурами схСм Π‘Π” вводятся скорСС для упрощСния процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅.

Swagger β€” это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈ спСцификация для опрСдСлСния REST APIs Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, друТСствСнном ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ (Π² нашСм случаС JSON ΠΈΠ»ΠΈ YAML). ПозТС пСрСимСновался Π² OpenApi, Π½ΠΎ всС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ сваггСр.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Но Swagger β€” это Π½Π΅ просто спСцификация. Основная Π΅Π³ΠΎ ΠΌΠΎΡ‰ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтах, Π²ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвиса Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π»Π΅ΠΆΠΈΡ‚ Ρ„Π°ΠΉΠ» со Swagger описаниСм ΠΈ хранится это всС прямо Π² git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Описания ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ сгСнСрированы ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Swagger generator, Ρ‚Π°ΠΊ ΠΈ записаны Ρ‚ΡƒΠ΄Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π˜Ρ… Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ, ΠΈ Π²ΠΎ врСмя сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ автоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ соотвСтствиС REST endpoints ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
НСсоотвСтствия Π±ΡƒΠ΄ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прСдупрСТдСния, ΠΈ Ρ‚Π΅ΠΌ самым ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии.

Плюс ΠΈΠΌΠ΅Π΅ΠΌ вСрсионированиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π΅Π»ΠΈΠ·Π°ΠΌ прилоТСния.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ микросСрвис прСдоставляСт ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ для ДТСнкинса (ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ CI сСрвСра), которая сгСнСрируСт ΠΏΠΎΠ»Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° собираСт Swagger Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· всСх микросСрвисов, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (дСдупликация, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²) ΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Swagger Ρ„Π°ΠΉΠ», содСрТащий ΠΏΠΎΠ»Π½ΡƒΡŽ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ доступной для всСх Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², тСстСров ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… заинтСрСсованных людСй Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. И Swagger UI β€” это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ для этого понадобится. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ нСбольшой JavaScript Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Swagger UI Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ HTML элСмСнты для всСх Π²Π°ΡˆΠΈΡ… REST endpoints, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTML Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹:

API Blueprint

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

RESTful API Modeling Language (RAML)

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΠ»ΡŽΡΡ‹ swagger:

ΠœΠΈΠ½ΡƒΡΡ‹:

ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ†ΠΈΡ‚Π°Ρ‚Π°

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° β€” ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… качСств Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Руководство Swagger UI

Swagger UI прСдоставляСт Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ OpenAPI. ΠΈ создаСт Π²Π΅Π±-страницу с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ. Π’ этом руководствС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ спСцификации OpenAPI Π² интСрфСйс Swagger.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ OpenAPI ΠΈ Swagger ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Знакомство со спСцификациями OpenAPI ΠΈ Swagger. ПошаговоС руководство ΠΏΠΎ созданию Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° спСцификации OpenAPI смотрим Π² ΠžΠ±Π·ΠΎΡ€Π΅ руководства OpenAPI 3.0.

ΠžΠ±Π·ΠΎΡ€ Swagger UI

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ углубимся Π² Swagger, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹.

Swagger

OpenAPI

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ спСцификации OpenAPI. БпСцификация OpenAPI прСдоставляСт Π½Π°Π±ΠΎΡ€ свойств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для описания REST API. Π Π°Π±ΠΎΡ‡ΠΈΠΉ, Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, создания клиСнтских SDK, запуска ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ спСцификации ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π° GitHub ΠΏΠΎ адрСсу https://github.com/OAI/OpenAPI-Specification. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ Open API с Linux Foundation спСцификация OpenAPI Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​на Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ нСзависимой ΠΎΡ‚ производитСля (ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅).

Swagger Editor

Онлайн-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ OpenAPI Π½Π° соотвСтствиС ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ спСцификации OpenAPI. Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Swagger ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ошибки ΠΈ Π΄Π°Π΅Ρ‚ совСты ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

Swagger UI

Swagger Codegen

Знакомство со Swagger ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Petstore

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ интСрфСйс Swagger, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Swagger Petstore. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Petstore сайт гСнСрируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Swagger UI.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сгруппированы ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Авторизация запроса

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ запросы, Π½ΡƒΠΆΠ½Π° авторизация. НаТимаСм ΠΊΠ½ΠΎΠΏΠΊΡƒ Authorize ΠΈ заполняСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ Π² ΠΎΠΊΠ½Π΅ «Авторизация», ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Petstore ΠΈΠΌΠ΅Π΅Ρ‚ модСль бСзопасности OAuth 2.0. Код Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для дСмонстрационных Ρ†Π΅Π»Π΅ΠΉ. НСт Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ этих запросов, поэтому просто Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Авторизации.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ запроса

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим запрос:

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Swagger отправляСт запрос ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ curl. Π Π°Π·Π΄Π΅Π» ΠžΡ‚Π²Π΅Ρ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚. (Если Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ JSON вмСсто XML Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС Β«Response content typeΒ», Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON.)

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° создания ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сайтов с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΉ ΠΏΠΎ Swagger UI

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ API с этим пособиСм ΠΏΠΎ Swagger (ΠΊΡ€ΠΎΠΌΠ΅ дСмонстрации Petstore), посмотрим Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Swagger:

НСкоторыС ΠΈΠ· этих сайтов выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ The Movie Database API ΠΈ Zomato, Π±Ρ‹Π»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΡ… сайта Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

👨‍💻 ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ занятиС: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ спСцификации OpenAPI Π² Swagger UI

На этом занятии ΠΌΡ‹ создадим Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π² Swagger UI Π² спСцификации OpenAPI. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ созданных Ρ„Π°ΠΉΠ»ΠΎΠ² OpenAPI, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создадим здСсь: OpenWeatherMap Swagger UI ΠΈΠ»ΠΈ Sunrise/sunset Swagger UI).

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ спСцификации OpenAPI Π² Swagger UI:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Знакомство со спСцификациями OpenAPI ΠΈ Swagger

OpenAPI являСтся спСцификациСй для описания REST API. МоТно Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ OpenAPI ΠΊΠ°ΠΊ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ DITA. Π’ DITA ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты XML, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для опрСдСлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² справки, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ порядок ΠΈ иСрархия для этих элСмСнтов. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ инструмСнты ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ DITA ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-сайт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° основС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π’ OpenAPI вмСсто XML сущСствуСт Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² JSON с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ схСмой, которая опрСдСляСт ΠΈΡ… Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, порядок ΠΈ содСрТимоС. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» JSON (часто выраТаСтся Π² YAML вмСсто JSON) описываСт ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ API. ΠžΠΏΠΈΡΡ‹Π²Π°Ρ API Π² стандартном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, инструмСнты ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± API ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² стилизованном ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Взгляд Π½Π° ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ OpenAPI

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ OpenAPI, Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠ· спСцификации. Углубимся Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ….

Π­Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ YAML, взят ΠΈΠ· Swagger PetStore

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π°Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² этом ΠΊΠΎΠ΄Π΅:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° спСцификации

ΠŸΡ€ΠΈ создании спСцификации OpenAPI, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Swagger. Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Swagger динамичСски провСряСт ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ созданная спСцификация Π²Π°Π»ΠΈΠ΄Π½ΠΎΠΉ.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

Если Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Swagger, ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΆΠ΄Π°Ρ‚ΡŒ запуска сборки ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ошибки.

YAML зависим ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠΉ, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… синтаксис ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’Π°ΠΊΠΎΠ΅ пространствСнно-Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ понятным для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Однако, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ слоТности с расстановкой ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ².

АвтоматичСская гСнСрация Ρ„Π°ΠΉΠ»Π° OpenAPI ΠΈΠ· Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ ΠΊΠΎΠ΄Π°

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² спСцификации OpenAPI Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ автоматичСски ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΠΌΠ΅Π΅Ρ‚ смысл, Ссли Π΅ΡΡ‚ΡŒ большоС количСство API-интСрфСйсов ΠΈΠ»ΠΈ Ссли для тСхничСских писатСлСй нСцСлСсообразно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эту Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

Swagger ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² свой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² спСцификации. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Swagger Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² спСцификации OpenAPI. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Swagger Codegen. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ языка программирования. НапримСр, Π²ΠΎΡ‚ справочник ΠΏΠΎ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Swagger для Scalatra. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Codegen см. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ инструмСнтов автоматичСского гСнСрирования ΠΊΠΎΠ΄Π° API для Swagger ΠΏΠΎ API Evangelist. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Β«Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ инструмСнты SwaggerΒ» ΠΈ Β«Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌΒ».

Π₯отя этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈ Β«Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Β» Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ спСцификации, Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (этот процСсс Π½Π΅ слишком отличаСтся ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Javadoc). Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ (описывая ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Ρ‚. Π”.).

Если ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎ этому ΠΏΡƒΡ‚ΠΈ, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ доступ ΠΊ исходному ΠΊΠΎΠ΄Ρƒ для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ (Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ).

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎ спСцификации

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языкомSpec-first development это философия ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ API Π±ΠΎΠ»Π΅Π΅ эффСктивно. Если Π²Ρ‹ слСдуСтС философии «сначала спСцификация», Π²Ρ‹ сначала ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΅Π΅ Π² качСствС ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΈΡˆΡƒΡ‚ ΠΊΠΎΠ΄.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ спСцификации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠ°ΠΊΠΎΠ²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ этот Β«ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Β» ΠΈΠ»ΠΈ Β«ΠΏΠ»Π°Π½Β» Π±Ρ‹Π» принят, Π‘Ρ‚ΠΎΡƒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π² свой ΠΊΠΎΠ΄ (ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ спСцификации Π±ΠΎΠ»Π΅Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ способом. Но Π½Π΅ стоит ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ спСцификации.

Блишком часто ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² быстро пСрСходят ΠΊ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ API, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Π±Π΅Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ тСстирования ΠΈΠ»ΠΈ исслСдования, соотвСтствуСт Π»ΠΈ API Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ хотят ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями API-интСрфСйсов Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ слоТно (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π² дальнСйшСм с ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ вСрсиями), Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° «быстрый сбой», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊ часто ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ agile энтузиасты. НСт Π½ΠΈΡ‡Π΅Π³ΠΎ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ вашСго API, которая Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… выпусках. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎΠ΅ вСрсионированиС Π² API ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Компания Smartbear, которая Π΄Π΅Π»Π°Π΅Ρ‚ SwaggerHub (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π°Π΄ спСцификациями API Swagger), Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ для ΠΊΠΎΠΌΠ°Π½Π΄ Ρ‡Π°Ρ‰Π΅ встрСчаСтся Ρ€ΡƒΡ‡Π½ΠΎΠ΅ написаниС спСцификации, Π° Π½Π΅ встраиваниС Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ исходного ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ β€œspec-first development” Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ срСди большСго количСства Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π΅ΠΆΠ΅Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ². ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ спСцификации ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠ΅ API.

Π”Π°ΠΆΠ΅ Π΄ΠΎ создания API спСцификация ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΆΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚, добавляя опрСдСлСния ΠΎΡ‚Π²Π΅Ρ‚Π° Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Мок-сСрвСр Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ исходит ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ сСрвСра, Π½ΠΎ это просто ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π² ΠΊΠΎΠ΄Π΅, ΠΈ каТСтся Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Роль тСхничСского писатСля Π² спСцификации

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π’ΠΎΠΌΠ° ДТонсона Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±Ρ‹Π»ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Swagger ΠΈΠ»ΠΈ OpenAPI, поэтому ΠΎΠ½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ создавал Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ спСцификации OpenAPI Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ часто Π½Π΅ ΠΈΠΌΠ΅Π» доступа ΠΊ исходному ΠΊΠΎΠ΄Ρƒ, ΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² английский язык Π±Ρ‹Π» Π½Π΅ Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ. ДокумСнтация Π±Ρ‹Π»Π° для Π½ΠΈΡ… слоТным Π΄Π΅Π»ΠΎΠΌ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π½Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹, Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹Π΅ с Swagger ΠΈΠ»ΠΈ OpenAPI, Π½ΠΎ заинтСрСсованныС Π² использовании ΠΈΡ… Π² качСствС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API (ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, основанный Π½Π° схСмах, соотвСтствуСт ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎΠΌΡƒ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡŽ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°ΠΌ, вСроятно, придСтся Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ дСталям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ для создания спСцификации.

Π’ этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ тСхничСскиС писатСли ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² сотрудничСствС с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ спСцификации API. Если ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ философии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, основанной Π½Π° спСцификациях, эта Ρ€ΠΎΠ»ΡŒ (тСхписатСля) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ API Π΄ΠΎ Π΅Π³ΠΎ кодирования ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ†ΠΈΡŽ ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, простоту ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ API (Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ тСхничСскиС писатСли).

Визуализация спСцификации OpenAPI с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Swagger UI

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ получился Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎ спСцификации OpenAPI, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ API, ΠΌΠΎΠΆΠ½ΠΎ β€œΡΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒβ€ эту ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ инструмСнтам, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Petstore.

НаиболСС распространСнным инструмСнтом, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для Π°Π½Π°Π»ΠΈΠ·Π° спСцификации OpenAPI, являСтся Swagger UI. (ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Β«SwaggerΒ» относится ΠΊ инструмСнтам API, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Β«OpenAPIΒ» относится ΠΊ нСзависимой ΠΎΡ‚ поставщика спСцификации, Π½Π΅ зависящСй ΠΎΡ‚ инструмСнта.) ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Swagger Π΅Π³ΠΎ довольно Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ собствСнного Ρ„Π°ΠΉΠ»Π° спСцификации. Руководство ΠΏΠΎ настройкС Swagger UI Π΅ΡΡ‚ΡŒ Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅.

Код ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Swagger Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ экран, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языкомНа ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ Swagger ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Open API

МоТно ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Swagger UI с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ API сСрвиса ΠΏΠΎΠ³ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° курса.

НСкоторыС Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΡŽΡ‚ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ списки Swagger UI ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‡Π½ΡƒΡŽ модСль ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ способной ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ. ОбъСдиняя всС ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС Π² ΠΎΠ΄Π½ΠΎΠΌ прСдставлСнии, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ вСсь API. Π’Π°ΠΊΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ прСдставлСниС Π² Ρ†Π΅Π»ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ позволяСт ΠΈΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Swagger UI являСтся ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ справочным руководством ΠΏΠΎ API.

👨‍💻 ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ занятиС: Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌ API PetStore Π² Swagger UI

Π”Π°Π²Π°ΠΉΡ‚Π΅ познакомимся с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом Swagger, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Petstore.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым ΡΠ·Ρ‹ΠΊΠΎΠΌΠžΠΊΠ½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Swagger UI

    Π Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Pet

    Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языкомВыполнСниС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Petstore запроса

    Swagger UI отправляСт запрос ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ curl. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±Ρ‹Π» ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ curl:

    Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ β€œΠžΡ‚Π²Π΅Ρ‚Ρ‹β€ Swagger UI Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ сСрвСра. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ XML:

    Если Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС β€œResponse content type” JSON, Ρ‚ΠΎ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ вСрнСтся JSON вмСсто XML.

    Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ swagger простым языком

    Π”Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

    Помимо Swagger UI Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ OpenAPI. Π’ΠΎΡ‚ список ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… инструмСнтов: Restlet Studio, Apiary, Apigee, Lucybot, Gelato, Readme.io, swagger2postman, ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ swagger-ui, Postman Run Buttons ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

    ΠšΠ°ΡΡ‚ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΡ Swagger UI

    Однако, ΠΏΠΎΠΌΠΈΠΌΠΎ этих простых ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ, потрСбуСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мастСрства Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сущСствСнно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Swagger. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, понадобятся Π½Π°Π²Ρ‹ΠΊΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

    НСдостатки OpenAPI ΠΈ Swagger UI

    НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Swagger ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ возмоТностями Π°ΠΏΠ΅Π»Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ ТСланиям ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Β«Π΄Π°ΠΉ ΠΌΠ½Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒΒ», Ρƒ Swagger ΠΈ OpenAPI Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСдостатки:

    НСкоторыС ΡƒΡ‚Π΅ΡˆΠ΅Π½ΠΈΡ

    НСсмотря Π½Π° нСдостатки спСцификации OpenAPI, ΠΎΠ½ всС ΠΆΠ΅ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π΅Π΅ для описания API. OpenAPI быстро становится срСдством для всС большСго ΠΈ большСго количСства инструмСнтов (ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ запуска Postman для ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ API), для быстрого получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ нашСм API ΠΈ для прСвращСния Π΅Π΅ Π² Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ своСй спСцификации OpenAPI ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой API Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ систСмы, Π° Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС ΠΈ созданиС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ².

    Swagger UI обСспСчиваСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ для API. МоТно Π»Π΅Π³ΠΊΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ справочник). ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° этой структурС, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ основы вашСго API.

    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ спСцификации OpenAPI ΠΈ описаниС своСго API с Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ свойствами ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ свой собствСнный ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ API. НапримСр, станСт понятно, Ρ‡Ρ‚ΠΎ сущСствуСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основных Ρ‚ΠΈΠΏΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Β«ΠΏΡƒΡ‚ΠΈΒ», ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Β«Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Β», ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ «запроса» ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Β«Ρ‚Π΅Π»Π° запроса». Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² REST: Β«BooleanΒ», Β«numberΒ», Β«integerΒ» ΠΈΠ»ΠΈ Β«stringΒ». Π’ ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… содСрТатся Β«objectsΒ», содСрТащиС Β«stringsΒ» ΠΈΠ»ΠΈ Β«arraysΒ».

    ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, рСализация спСцификации даст Π΅Ρ‰Π΅ ΠΈ прСдставлСниС ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ API, которая, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ своСго API достовСрными способами.

    OpenAPI ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ API, Π½ΠΎ Ссли API ΠΈΠΌΠ΅Π΅Ρ‚ довольно простыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π±Π΅Π· большого количСства взаимозависимостСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, ΠΈ Ссли Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ API с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, OpenAPI ΠΈ Swagger UI ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. МоТно Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ запросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹.

    Π‘ Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ элСмСнтом докумСнтация становится большС, Ρ‡Π΅ΠΌ просто информация. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OpenAPI ΠΈ Swagger UI ΠΌΡ‹ создаСм пространство для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с нашим API. Π­Ρ‚Π° комбинация ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ обучСния для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

    РСсурсы для дальнСйшСго чтСния

    Π’ΠΎΡ‚ источники для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± OpenAPI ΠΈ Swagger:

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *