SlideShare a Scribd company logo
1 of 20
Swagger
Зачем использовать
API фреймворки?
• Автогенерация кода
• Документация
• Автовалидация
• Тесты
• Клиент
• Красивый UI
UI
Editor
Swagger 2.0 ≠ Swagger 1.2
– Почти полная поддержка JSON schema
– Смена идеологии
– Поддержка YAML
– Новый формат полей
Спецификация
Параметры
{
Параметры
Модели
– Наследование
– Полиморфизм
– Ссылки
Авторизация
Тип Заголовок
Basic
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
ApiKey
api_key: 22555afccfcd7c2e32392a027
OAuth2 Authorization: Bearer mF_9.B5f-4.1JqM
Top-down vs Bottom-up
спецификация
реализация
swagger-node-express
swaggerize-express
swagger-codegen
C#
+ templates
client + server
+ docs
2.0
Что есть еще
Apiblueprint
– YAML
– !include
– traits
WORKGROUP:
WADL
Выводы
• Большое сообщество и экосистема (>45 сервисов)
• Поддержка большого кол-ва языков (>13)
• Богатые возможности спецификации
• Визуальные инструменты
• Платформонезависимость
• Зоопарк сторонних библиотек
• Несоответствия библиотек спецификациям
• Исторически bottom-top идеология
+
–
Спасибо
@raxpost
http://yarax.ru
http://facebook.com/raxwunter

More Related Content

What's hot

4 kazakov clouds-intesting
4 kazakov clouds-intesting4 kazakov clouds-intesting
4 kazakov clouds-intesting
qasib
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Ontico
 
Serge P Nekoval Grails
Serge P  Nekoval GrailsSerge P  Nekoval Grails
Serge P Nekoval Grails
rit2010
 

What's hot (19)

Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
JS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
JS Lab2017_Redux: время двигаться дальше?_Екатерина ЛизогубоваJS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
JS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
 
ASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton VidishchevASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton Vidishchev
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
 
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоОт простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
 
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
 
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинИнструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
 
knockout.js
knockout.jsknockout.js
knockout.js
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
 
Mvc3
Mvc3Mvc3
Mvc3
 
Построение облачных процессов с помощью Mistral
Построение облачных процессов с помощью MistralПостроение облачных процессов с помощью Mistral
Построение облачных процессов с помощью Mistral
 
Современный graphql на бекенде и фронтенде. Тестирование, секьюрити, новые во...
Современный graphql на бекенде и фронтенде. Тестирование, секьюрити, новые во...Современный graphql на бекенде и фронтенде. Тестирование, секьюрити, новые во...
Современный graphql на бекенде и фронтенде. Тестирование, секьюрити, новые во...
 
4 kazakov clouds-intesting
4 kazakov clouds-intesting4 kazakov clouds-intesting
4 kazakov clouds-intesting
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Аспектно-ориентированное программирование (АОП) на примере PostSharp
Аспектно-ориентированное программирование (АОП) на примере PostSharpАспектно-ориентированное программирование (АОП) на примере PostSharp
Аспектно-ориентированное программирование (АОП) на примере PostSharp
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр Афенов
 
Serge P Nekoval Grails
Serge P  Nekoval GrailsSerge P  Nekoval Grails
Serge P Nekoval Grails
 

Similar to Swagger 2.0

Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
buranLcme
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
Regn
 
Сергей Яременко: «Автоматизация на коленке. Скрипты в AdWords»
Сергей Яременко: «Автоматизация на коленке. Скрипты в AdWords»Сергей Яременко: «Автоматизация на коленке. Скрипты в AdWords»
Сергей Яременко: «Автоматизация на коленке. Скрипты в AdWords»
Клуб Интернет-Маркетологов
 
NPAPI
NPAPINPAPI

Similar to Swagger 2.0 (20)

Павел Федотовский «Документация REST API c использованием Swagger»
Павел Федотовский «Документация REST API c использованием Swagger»Павел Федотовский «Документация REST API c использованием Swagger»
Павел Федотовский «Документация REST API c использованием Swagger»
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
 
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
 
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
 
Sivko
SivkoSivko
Sivko
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
 
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил Павлючков
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на Rails
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
SECON'2016. Мухаметов Андрей, RxSwift && Apple TV - так ли хорошо всё новое?
SECON'2016. Мухаметов Андрей, RxSwift && Apple TV - так ли хорошо всё новое?SECON'2016. Мухаметов Андрей, RxSwift && Apple TV - так ли хорошо всё новое?
SECON'2016. Мухаметов Андрей, RxSwift && Apple TV - так ли хорошо всё новое?
 
Сергей Яременко: «Автоматизация на коленке. Скрипты в AdWords»
Сергей Яременко: «Автоматизация на коленке. Скрипты в AdWords»Сергей Яременко: «Автоматизация на коленке. Скрипты в AdWords»
Сергей Яременко: «Автоматизация на коленке. Скрипты в AdWords»
 
NPAPI
NPAPINPAPI
NPAPI
 
Артем Титаренко
Артем ТитаренкоАртем Титаренко
Артем Титаренко
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 

Swagger 2.0

Editor's Notes

  1. Чочопопячся
  2. В конце Так что такое свагер?
  3. Wordnik 2010 SmartBear
  4. И это важно: yaml top-down
  5. Не совпадали версии спецификации кодогенератора и UI Рассмотрим в кратце спецификацию
  6. Начнем с параметров
  7. Ссылки Ожидаем от клиента json объект валидный с объектом Pet
  8. Мы можем использовать все возможности валидации, предоставляемые JSON схемой
  9. – У свагера самая большая поддержка видов авторизации – UI
  10. Плюсы за bottom-up: генерацию генерировать проще, чем код
  11. Таки пишем спецификацию, привязываем хендлер и добавляем странным методом addGet
  12. Вывод: инструментов много, но они не решат все ваши проблемы
  13. SmartBear