Специфікація OpenAPI, початково відома як Swagger - це специфікація машиночитабельних файлів з інтерфейсами, для опису, створення, використання і візуалізації REST веб сервісів. Існують різноманітні інструменти що можуть генерувати код, документацію і тести за файлом з описом інтерфейсу. За розробкою специфікації OpenAPI (OAS) наглядає Open API Initiative, проект Linux Foundation.
Історія
Розробка Swagger почалась в 2010. В березні 2015, SmartBear Software купила Swagger API specification у Reverb Technologies. В листопаді 2015, SmartBear, компанія яка підтримувала специфікацію Swagger та пов'язані інструменти, оголосила що вона допомагає створювати нову організацію, спонсоровану Linux Foundation, яку назвали Open API Initiative. Різні компанії, включно з Google, IBM та Microsoft стали членами-засновниками. SmartBear пожертвувала специфікацію Swagger новоствореній групі. Група також розглядала стандарти RAML та API Blueprint [ 22 лютого 2018 у Wayback Machine.].
1 січня 2016, специфікацію Swagger (англ. Swagger specification) перейменували на специфікацію OpenAPI (англ. OpenAPI Specification), і перемістили її розробку до нового репозиторію на GitHub [ 20 грудня 2016 у Wayback Machine.].
SmartBear продовжує розробляти інструменти під брендом Swagger що підтримують OpenAPI специфікацію. В 2016, SmartBear отримав за розробку Swagger нагороду API Award в категорії API Infrastructure.
В 2017, OpenAPI випустила версію 3.0 своєї специфікації. MuleSoft, головний розробник альтернативної RESTful API Modeling Language (RAML), приєднався до OAS і відкрив код свого інструменту API Modeling Framework, який може генерувати OAS-документи з RAML.
Використання
Додатки що розробляються з допомогою файлів що описують інтерфейси OpenAPI можуть автоматично генерувати документацію методів, параметрів та моделей. Це допомагає синхронізувати документацію, бібліотеки для розробки клієнтів та код застосунку.
Особливості
Специфікація OpenAPI не залежить від мови. Також її можна поширювати на нові технології і не тільки HTTP протоколи.
З декларативною специфікацією ресурсу OpenAPI, клієнти можуть розуміти і використовувати сервіси без знання деталей реалізації сервера.
Приклад
Нижче подано приклад OpenAPI специфікації яка описує API з ендпоінтом http://myapi.mydomain/v1[недоступне посилання], яке має один ресурс /data
, на який воно може відповідати рядком тексту або JSON-ом з помилкою:
openapi: "3.0.0" info: version: 1.0.0 title: My API servers: - url: http://myapi.mydomain/v1 paths: /data: get: summary: Get data responses: '201': description: Data response content: application/json: schema: $ref: "#/components/schemas/Data" default: description: unexpected error content: application/json: schema: $ref: "#/components/schemas/Error" components: schemas: Error: required: - code - message properties: code: type: integer format: int32 message: type: string Data: type: string
Інструменти для роботи з OpenAPI
Open API Initiative підтримує список реалізацій третьої версії специфікації. Також існують неофіційні списки. .
SmartBear досі випускає свої інструменти для OpenAPI під брендом Swagger.
Фреймворк Swagger UI дозволяє розробникам та іншим задіяним в проекті спеціалістам взаємодіяти з API в графічному інтерфейсі "пісочниця", який дає поняття про те як API відповідає на запити з різними параметрами.
Swagger-Codegen містить двигун на основі шаблонів, який генерує документацію, код клієнтів API та заглушки серверів різними мовами програмування згідно специфікації OpenAPI.
Див. також
Зноски
- . Архів оригіналу за 20 липня 2018. Процитовано 22 квітня 2016.
- . OpenAPI Initiative. Архів оригіналу за 20 вересня 2016. Процитовано 23 квітня 2020.
- . SmartBear. Архів оригіналу за 24 жовтня 2016. Процитовано 25 березня 2015.
- . ProgrammableWeb. 10 листопада 2015. Архів оригіналу за 9 листопада 2016. Процитовано 21 квітня 2016.
- . www.linuxfoundation.org. Архів оригіналу за 27 квітня 2016. Процитовано 22 квітня 2016.
- Montcheuil, Yves de. . InfoWorld. Архів оригіналу за 10 серпня 2016. Процитовано 25 квітня 2016.
- . InfoQ. Архів оригіналу за 29 вересня 2017. Процитовано 25 квітня 2016.
- . Архів оригіналу за 3 листопада 2016. Процитовано 22 лютого 2018.
- . InfoQ. Архів оригіналу за 23 лютого 2018. Процитовано 14 травня 2017.
- . InfoQ. Архів оригіналу за 23 лютого 2018. Процитовано 14 травня 2017.
- swagger-api/swagger-spec. GitHub. Процитовано 1 грудня 2015.
- . GitHub. Архів оригіналу за 26 червня 2020. Процитовано 23 квітня 2020.
- APIs-guru/awesome-openapi3. GitHub. Процитовано 23 квітня 2020.
- . Архів оригіналу за 10 травня 2020. Процитовано 23 квітня 2020.
Посилання
- Open API Initiative (OAI) [ 22 жовтня 2016 у Wayback Machine.]
- Swagger [ 8 листопада 2016 у Wayback Machine.]
- OpenAPI Specification [ 20 грудня 2016 у Wayback Machine.] на Github
- Directory of OpenAPI definitions [ 26 грудня 2017 у Wayback Machine.]
- Онлайн редактор специфікації OpenAPI [ 6 червня 2018 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Specifikaciya OpenAPI pochatkovo vidoma yak Swagger ce specifikaciya mashinochitabelnih fajliv z interfejsami dlya opisu stvorennya vikoristannya i vizualizaciyi REST veb servisiv Isnuyut riznomanitni instrumenti sho mozhut generuvati kod dokumentaciyu i testi za fajlom z opisom interfejsu Za rozrobkoyu specifikaciyi OpenAPI OAS naglyadaye Open API Initiative proekt Linux Foundation Specifikaciya API ukrayinskoyi vikipediyi vidobrazhena v Swagger UI z prikladom zapituIstoriyaRozrobka Swagger pochalas v 2010 V berezni 2015 SmartBear Software kupila Swagger API specification u Reverb Technologies V listopadi 2015 SmartBear kompaniya yaka pidtrimuvala specifikaciyu Swagger ta pov yazani instrumenti ogolosila sho vona dopomagaye stvoryuvati novu organizaciyu sponsorovanu Linux Foundation yaku nazvali Open API Initiative Rizni kompaniyi vklyuchno z Google IBM ta Microsoft stali chlenami zasnovnikami SmartBear pozhertvuvala specifikaciyu Swagger novostvorenij grupi Grupa takozh rozglyadala standarti RAML ta API Blueprint 22 lyutogo 2018 u Wayback Machine 1 sichnya 2016 specifikaciyu Swagger angl Swagger specification perejmenuvali na specifikaciyu OpenAPI angl OpenAPI Specification i peremistili yiyi rozrobku do novogo repozitoriyu na GitHub 20 grudnya 2016 u Wayback Machine SmartBear prodovzhuye rozroblyati instrumenti pid brendom Swagger sho pidtrimuyut OpenAPI specifikaciyu V 2016 SmartBear otrimav za rozrobku Swagger nagorodu API Award v kategoriyi API Infrastructure V 2017 OpenAPI vipustila versiyu 3 0 svoyeyi specifikaciyi MuleSoft golovnij rozrobnik alternativnoyi RESTful API Modeling Language RAML priyednavsya do OAS i vidkriv kod svogo instrumentu API Modeling Framework yakij mozhe generuvati OAS dokumenti z RAML VikoristannyaDodatki sho rozroblyayutsya z dopomogoyu fajliv sho opisuyut interfejsi OpenAPI mozhut avtomatichno generuvati dokumentaciyu metodiv parametriv ta modelej Ce dopomagaye sinhronizuvati dokumentaciyu biblioteki dlya rozrobki kliyentiv ta kod zastosunku OsoblivostiSpecifikaciya OpenAPI ne zalezhit vid movi Takozh yiyi mozhna poshiryuvati na novi tehnologiyi i ne tilki HTTP protokoli Z deklarativnoyu specifikaciyeyu resursu OpenAPI kliyenti mozhut rozumiti i vikoristovuvati servisi bez znannya detalej realizaciyi servera Priklad Nizhche podano priklad OpenAPI specifikaciyi yaka opisuye API z endpointom http myapi mydomain v1 nedostupne posilannya yake maye odin resurs data na yakij vono mozhe vidpovidati ryadkom tekstu abo JSON om z pomilkoyu openapi 3 0 0 info version 1 0 0 title My API servers url http myapi mydomain v1 paths data get summary Get data responses 201 description Data response content application json schema ref components schemas Data default description unexpected error content application json schema ref components schemas Error components schemas Error required code message properties code type integer format int32 message type string Data type stringInstrumenti dlya roboti z OpenAPIOpen API Initiative pidtrimuye spisok realizacij tretoyi versiyi specifikaciyi Takozh isnuyut neoficijni spiski SmartBear dosi vipuskaye svoyi instrumenti dlya OpenAPI pid brendom Swagger Frejmvork Swagger UI dozvolyaye rozrobnikam ta inshim zadiyanim v proekti specialistam vzayemodiyati z API v grafichnomu interfejsi pisochnicya yakij daye ponyattya pro te yak API vidpovidaye na zapiti z riznimi parametrami Swagger Codegen mistit dvigun na osnovi shabloniv yakij generuye dokumentaciyu kod kliyentiv API ta zaglushki serveriv riznimi movami programuvannya zgidno specifikaciyi OpenAPI Div takozhRepresentational State TransferZnoski Arhiv originalu za 20 lipnya 2018 Procitovano 22 kvitnya 2016 OpenAPI Initiative Arhiv originalu za 20 veresnya 2016 Procitovano 23 kvitnya 2020 SmartBear Arhiv originalu za 24 zhovtnya 2016 Procitovano 25 bereznya 2015 ProgrammableWeb 10 listopada 2015 Arhiv originalu za 9 listopada 2016 Procitovano 21 kvitnya 2016 www linuxfoundation org Arhiv originalu za 27 kvitnya 2016 Procitovano 22 kvitnya 2016 Montcheuil Yves de InfoWorld Arhiv originalu za 10 serpnya 2016 Procitovano 25 kvitnya 2016 InfoQ Arhiv originalu za 29 veresnya 2017 Procitovano 25 kvitnya 2016 Arhiv originalu za 3 listopada 2016 Procitovano 22 lyutogo 2018 InfoQ Arhiv originalu za 23 lyutogo 2018 Procitovano 14 travnya 2017 InfoQ Arhiv originalu za 23 lyutogo 2018 Procitovano 14 travnya 2017 swagger api swagger spec GitHub Procitovano 1 grudnya 2015 GitHub Arhiv originalu za 26 chervnya 2020 Procitovano 23 kvitnya 2020 APIs guru awesome openapi3 GitHub Procitovano 23 kvitnya 2020 Arhiv originalu za 10 travnya 2020 Procitovano 23 kvitnya 2020 PosilannyaOpen API Initiative OAI 22 zhovtnya 2016 u Wayback Machine Swagger 8 listopada 2016 u Wayback Machine OpenAPI Specification 20 grudnya 2016 u Wayback Machine na Github Directory of OpenAPI definitions 26 grudnya 2017 u Wayback Machine Onlajn redaktor specifikaciyi OpenAPI 6 chervnya 2018 u Wayback Machine