SlideShare a Scribd company logo
1 of 19
Mohsen Azimi / Prabhat Jha
14 April 2015
Design and Implementation of the
Swagger Editor: Our Journey
Today’s speakers
Mohsen Azimi
@mohsen____
Prabhat Jha
@prabhtajha
© 2014 Apigee – For Public display
Apigee social channels
3
YouTube
http://youtube.com/apigee
Slideshare
http://slideshare.com/apigee
• https://community.apigee.com ©CC BY-SA
© 2014 Apigee – For Public display
Agenda
• Swagger intro
• The case for the Swagger Editor
• Demo
• Choosing underlying frameworks and tools
• Optimizing for performance and usability
• Q&A
©CC BY-SA
© 2014 Apigee – For Public display
Swagger intro
5
• API specification format
– deterministic and little opinionated, yet flexible
– language and platform independent
– ecosystem of 100K+ developers worldwide
– popular with both startups and large enterprises.
• Tools to:
– generate documentation
– generate API specs from code
– generate client SDKs (JS, iOS, Android, Java, ….)
• Tons of community contributed projects, including a few from Apigee.
https://github.com/swagger-api/swagger-spec#additional-libraries
©CC BY-SA
Spec first or code first?
6©CC BY-SA
Spec first or code first?
7©CC BY-SA
© 2014 Apigee – For Public display
Swagger 2.0
8
• Single file for specification
• More JSON schema
• Introduction of JSON references
• Markdown support for descriptions
• JSON schema for validating Swagger 2.0 specs
• YAML as first-class citizen—more human friendly
• Lessons learned from Swagger 1.2 and previous versions
©CC BY-SA
© 2014 Apigee – For Public display
Sample API definition
9
swagger: '2.0’
info:
version: 1.0.0
title: A simple API
paths:
/:
get:
responses:
200:
description: OK
{
"swagger":"2.0",
"info":{
"version":"1.0.0",
"title":"AsimpleAPI"
},
"paths":{
"/":{
"get":{
"responses":{
"200":{
"description":"OK"
}
}
}
}
}
}
YAML JSON
©CC BY-SA
© 2014 Apigee – For Public display 10
How should you build an API ?
©CC BY-SA
© 2014 Apigee – For Public display 11
How should you build an API anything?
©CC BY-SA
© 2014 Apigee – For Public display 12
How should you build an API anything?
Design it first !!
©CC BY-SA
© 2014 Apigee – For Public display
Design-first API development
13
• Fast feedback loop
• Well-structured API
• Collaborative development
• Well-documented API with users in mind
• Testable API
©CC BY-SA
© 2014 Apigee – For Public display
Good design requires good tools
14
©CC BY-SA
© 2014 Apigee – For Public display
Making the case for an editor
15
• There was no tool that provided a fast feedback loop for authoring
Swagger specs
• No one can remember all the Swagger specs (well, maybe some
can*)
• Other API specs have authoring tools
• To benefit quickly, help was needed with the transition from 1.2 to 2.0
* Benefit of the doubt given to @webron and @fehguy
©CC BY-SA
© 2014 Apigee – For Public display 16
» Short Demo
(http://editor.swagger.io)
©CC BY-SA
© 2014 Apigee – For Public display 17
» Let’s get to the nuts and bolts
http://azimi.me/presentations/building-swagger-editor/index.html#42
©CC BY-SA
Questions ??
Mohsen Azimi
@mohsen____
Prabhat Jha
@prabhtajha
• Try it live: http://editor.swagger.io/
• Open issues : https://github.com/swagger-api/swagger-editor
• More help: https://community.apigee.com/
©CC BY-SA
© 2014 Apigee – For Public display
Thank you
14 April 2015

More Related Content

Viewers also liked

Viewers also liked (14)

Is Microservices SOA Done Right?
Is Microservices SOA Done Right?Is Microservices SOA Done Right?
Is Microservices SOA Done Right?
 
API Design first with Swagger
API Design first with SwaggerAPI Design first with Swagger
API Design first with Swagger
 
Are ESBs Relevant in the Age of Microservices?
Are ESBs Relevant in the Age of Microservices?Are ESBs Relevant in the Age of Microservices?
Are ESBs Relevant in the Age of Microservices?
 
Becoming the Uncarrier: T-Mobile's Digital Journey
Becoming the Uncarrier: T-Mobile's Digital JourneyBecoming the Uncarrier: T-Mobile's Digital Journey
Becoming the Uncarrier: T-Mobile's Digital Journey
 
What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.
 
API Governance in the Enterprise
API Governance in the EnterpriseAPI Governance in the Enterprise
API Governance in the Enterprise
 
API Management and Kubernetes
API Management and KubernetesAPI Management and Kubernetes
API Management and Kubernetes
 
Adapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg BrailAdapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg Brail
 
Managing Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices WorldManaging Sensitive Information in an API and Microservices World
Managing Sensitive Information in an API and Microservices World
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...
 
Microservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices SuccessMicroservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices Success
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

More from Apigee | Google Cloud

More from Apigee | Google Cloud (20)

How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)
 
Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs
 
Apigee Demo: API Platform Overview
Apigee Demo: API Platform OverviewApigee Demo: API Platform Overview
Apigee Demo: API Platform Overview
 
Ticketmaster at a glance
Ticketmaster at a glanceTicketmaster at a glance
Ticketmaster at a glance
 
AccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldAccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First World
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2
 
The Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management MarketThe Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management Market
 
Walgreens at a glance
Walgreens at a glanceWalgreens at a glance
Walgreens at a glance
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
Managing the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsManaging the Complexity of Microservices Deployments
Managing the Complexity of Microservices Deployments
 
Pitney Bowes at a glance
Pitney Bowes at a glancePitney Bowes at a glance
Pitney Bowes at a glance
 
Adapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet KapoorAdapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet Kapoor
 
Adapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant JhingranAdapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant Jhingran
 
London Adapt or Die: Opening Keynot
London Adapt or Die: Opening KeynotLondon Adapt or Die: Opening Keynot
London Adapt or Die: Opening Keynot
 
London Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynoteLondon Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynote
 
London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!
 
London adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoorLondon adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoor
 
London Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet KapoorLondon Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet Kapoor
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

How We Built the Online Swagger Editor

  • 1. Mohsen Azimi / Prabhat Jha 14 April 2015 Design and Implementation of the Swagger Editor: Our Journey
  • 3. © 2014 Apigee – For Public display Apigee social channels 3 YouTube http://youtube.com/apigee Slideshare http://slideshare.com/apigee • https://community.apigee.com ©CC BY-SA
  • 4. © 2014 Apigee – For Public display Agenda • Swagger intro • The case for the Swagger Editor • Demo • Choosing underlying frameworks and tools • Optimizing for performance and usability • Q&A ©CC BY-SA
  • 5. © 2014 Apigee – For Public display Swagger intro 5 • API specification format – deterministic and little opinionated, yet flexible – language and platform independent – ecosystem of 100K+ developers worldwide – popular with both startups and large enterprises. • Tools to: – generate documentation – generate API specs from code – generate client SDKs (JS, iOS, Android, Java, ….) • Tons of community contributed projects, including a few from Apigee. https://github.com/swagger-api/swagger-spec#additional-libraries ©CC BY-SA
  • 6. Spec first or code first? 6©CC BY-SA
  • 7. Spec first or code first? 7©CC BY-SA
  • 8. © 2014 Apigee – For Public display Swagger 2.0 8 • Single file for specification • More JSON schema • Introduction of JSON references • Markdown support for descriptions • JSON schema for validating Swagger 2.0 specs • YAML as first-class citizen—more human friendly • Lessons learned from Swagger 1.2 and previous versions ©CC BY-SA
  • 9. © 2014 Apigee – For Public display Sample API definition 9 swagger: '2.0’ info: version: 1.0.0 title: A simple API paths: /: get: responses: 200: description: OK { "swagger":"2.0", "info":{ "version":"1.0.0", "title":"AsimpleAPI" }, "paths":{ "/":{ "get":{ "responses":{ "200":{ "description":"OK" } } } } } } YAML JSON ©CC BY-SA
  • 10. © 2014 Apigee – For Public display 10 How should you build an API ? ©CC BY-SA
  • 11. © 2014 Apigee – For Public display 11 How should you build an API anything? ©CC BY-SA
  • 12. © 2014 Apigee – For Public display 12 How should you build an API anything? Design it first !! ©CC BY-SA
  • 13. © 2014 Apigee – For Public display Design-first API development 13 • Fast feedback loop • Well-structured API • Collaborative development • Well-documented API with users in mind • Testable API ©CC BY-SA
  • 14. © 2014 Apigee – For Public display Good design requires good tools 14 ©CC BY-SA
  • 15. © 2014 Apigee – For Public display Making the case for an editor 15 • There was no tool that provided a fast feedback loop for authoring Swagger specs • No one can remember all the Swagger specs (well, maybe some can*) • Other API specs have authoring tools • To benefit quickly, help was needed with the transition from 1.2 to 2.0 * Benefit of the doubt given to @webron and @fehguy ©CC BY-SA
  • 16. © 2014 Apigee – For Public display 16 » Short Demo (http://editor.swagger.io) ©CC BY-SA
  • 17. © 2014 Apigee – For Public display 17 » Let’s get to the nuts and bolts http://azimi.me/presentations/building-swagger-editor/index.html#42 ©CC BY-SA
  • 18. Questions ?? Mohsen Azimi @mohsen____ Prabhat Jha @prabhtajha • Try it live: http://editor.swagger.io/ • Open issues : https://github.com/swagger-api/swagger-editor • More help: https://community.apigee.com/ ©CC BY-SA
  • 19. © 2014 Apigee – For Public display Thank you 14 April 2015