SlideShare a Scribd company logo
Swagger	
  
	
  
Make	
  your	
  API	
  accessible	
  
Victor	
  Trakhtenberg	
  
	
  
	
  
	
  
victortr75@gmail.com	
  	
  	
  	
  	
  	
  	
  @victortr75	
  	
  	
  	
  	
  	
  
Personal	
  
My	
  name	
  is	
  Victor	
  
Personal	
  
Java.IL	
  community	
  co-­‐founder	
  
http://www.meetup.com/JavaIL/
Personal	
  
Full	
  Stack	
  Engineer	
  @	
  	
  
Swagger - Make your REST APIs accessible - Victor Trakhtenberg
http://vatuma.com/demo/wp-content/uploads/2009/11/sun.jpg
http://toonclips.com/design/828
hFp://www.appdynamics.com/blog/wp-­‐content/uploads/2012/11/producMonCraziness2.png	
  
http://thehandcraPedstory.com/wp-content/uploads/2014/08/we-all-have-a-story-to-tell.jpg
Architecture	
  
Monolith	
  
to	
  
Micro	
  Services	
  
APIs	
  
hFps://twiFer.com/dcorpa	
  
Architecture	
  
APIs	
  are	
  for	
  humans	
  
DocumentaMon	
  
hFp://www.infoq.com/resource/presentaMons/API-­‐Humans/en/slides/sl23.jpg	
  
DocumentaMon	
  
DocumentaMon	
  
•  No	
  standard	
  
•  Ad-­‐hoc	
  aFributes	
  
•  Managed	
  manually	
  
•  Not	
  up	
  to	
  date	
  
•  …..	
  
hFp://www.imagineyourreality.com/business-­‐coaching/documentaMon.html	
  
API	
  LisMng	
  
API	
  OperaMons	
  
API	
  parameters	
  and	
  return	
  types	
  
Swagger	
  is…	
  
•  producing	
  
•  consuming	
  
•  visualizing	
  	
  
RESTful	
  APIs	
  	
  
	
  
A	
  framework	
  
for	
  
•  describing	
  
•  documenMng	
  
RESTful	
  APIs	
  	
  
	
  
A	
  specificaMon	
  
for	
  
Technology	
  
	
  
Methodology	
  
	
  
The	
  Swagger	
  SpecificaMon	
  
It’s	
  a	
  spec!	
  
•  JSON	
  to	
  specify	
  metadata	
  
•  JSON	
  to	
  specify	
  API	
  structure	
  
•  JSON	
  schema	
  for	
  the	
  model	
  
specificaMon	
  
•  Machine	
  readable	
  
•  Language	
  agnosMc	
  
Agenda	
  
•  IntroducMon	
  
•  Deep	
  Dive	
  
•  The	
  technology	
  
•  Swagger	
  is	
  not	
  
•  Swagger	
  2.0	
  
•  AlternaMves	
  
•  References	
  
Deep	
  Dive	
  
Swagger	
  -­‐	
  API	
  LisMng	
  
Swagger	
  -­‐	
  API	
  LisMng	
  -­‐	
  JSON	
  
Swagger	
  –	
  API	
  LisMng	
  -­‐	
  AnnotaMons	
  
Swagger	
  -­‐	
  API	
  Details	
  
Swagger	
  –	
  Test	
  the	
  API	
  
Swagger	
  -­‐	
  API	
  Details	
  -­‐	
  JSON	
  
Swagger	
  –	
  API	
  Details	
  -­‐	
  AnnotaMons	
  
The	
  Technology	
  
Reverb	
  -­‐	
  Wordnik	
  
Atmosphere	
  –	
  Scalatra	
  –	
  JSON4S	
  
The	
  Technology	
  –	
  Scala	
  based	
  
•  swagger-­‐core	
  
•  swagger-­‐codegen	
  
•  swagger-­‐ui	
  
•  swagger-­‐js	
  
•  swagger-­‐socket	
  
Server	
  side	
  integraMons	
  
•  Django	
  
•  Node.js	
  
•  JAX-­‐RS	
  
•  RESTEasy	
  
•  Grails	
  
•  Play	
  2	
  
•  Scalatra	
  
•  go-­‐rescul	
  
•  SpringMVC	
  
•  ServiceStack	
  .net/MONO	
  
•  Swagger-­‐PHP	
  
•  Symphony	
  2	
  
•  Grape-­‐swagger	
  for	
  Ruby	
  
•  Octohipster	
  for	
  Clojure	
  
•  More…	
  
Client	
  code	
  generaMon	
  
•  Java	
  
•  Scala	
  
•  Groovy	
  
•  Clojure	
  
•  Python	
  
•  Ruby	
  
•  ObjecMveC	
  
•  C#	
  
•  PHP	
  
•  Javascript	
  
•  Custom	
  
•  Uses	
  {{mustache}} templates	
  
Swagger	
  is	
  not	
  
•  Does	
  not	
  support	
  mulMple	
  API	
  versions	
  
•  Does	
  not	
  tell	
  how	
  to	
  write	
  the	
  API	
  
– Delete	
  an	
  object	
  by	
  HTTP	
  DELETE	
  or	
  via	
  
HTTP	
  GET	
  with	
  query	
  param	
  
•  Is	
  not	
  trying	
  to	
  solve	
  all	
  problems	
  for	
  all	
  
APIs	
  
Swagger	
  2.0	
  
Swagger - Make your REST APIs accessible - Victor Trakhtenberg
Emerging	
  Standard	
  
•  Thousands	
  of	
  developers	
  contributed	
  to	
  the	
  
ecosystem	
  
•  Tens	
  of	
  thousands	
  of	
  producMon	
  
deployments	
  
•  From	
  startups	
  to	
  US	
  Government	
  
http://www.marketwatch.com/story/reverb-announces-swagger-20-a-next-generation-
interface-to-connect-apis-and-cloud-services-2014-09-08?mod=mw_share_twitter
Swagger	
  2.0	
  
•  YAML	
  support	
  (along	
  with	
  JSON)	
  
•  OAuth	
  2.0	
  enabled	
  	
  
•  Migrated	
  to	
  Java	
  
•  Won’t	
  be	
  compaMble	
  with	
  1.x	
  
	
  
Swagger.io	
  
Swagger	
  Tools	
  
Swagger	
  UI	
  
Swagger	
  Tools	
  
Swagger	
  Tools	
  
AlternaMves	
  
•  SOAP/WSDL	
  
–  h?p://www.w3.org/TR/wsdl	
  
•  WADL	
  
–  h?p://en.wikipedia.org/wiki/
Web_ApplicaJon_DescripJon_Language	
  
•  Mashery	
  IO-­‐Docs	
  	
  
–  h?p://www.mashery.com/product/io-­‐docs	
  
–  h?ps://github.com/mashery/iodocs	
  
•  hFp://apiary.io/	
  
•  MuleSoP	
  (RAML)	
  
–  h?p://api-­‐portal.anypoint.mulesoL.com/raml-­‐tools?ref=apihub	
  
•  Homegrown	
  
References	
  
•  Swagger	
  home:	
  	
  
–  h?ps://developers.helloreverb.com/swagger/	
  
•  Swagger	
  specificaMon	
  
–  h?ps://github.com/wordnik/swagger-­‐core/wiki	
  
•  Swagger	
  Demo	
  
–  h?p://petstore.swagger.wordnik.com/	
  
•  Swagger.io	
  
•  Swagger	
  editor	
  
–  h?p://editor.swagger.io/	
  
•  Wordnik	
  APIs	
  
–  h?p://developer.wordnik.com/docs.html#!/account	
  
Make	
  your	
  API	
  accessible	
  
Use	
  Swagger!	
  

More Related Content

PPTX
Iterative Development with Swagger on the JDK
PDF
Swagger 2.0: Latest and Greatest
PPTX
Writer APIs in Java faster with Swagger Inflector
PDF
How to generate a REST CXF3 application from Swagger ApacheConEU 2016
PDF
Euroclojure2014: Schema & Swagger - making your Clojure web APIs more awesome
PPTX
Understanding how to use Swagger and its tools
PPTX
Document your rest api using swagger - Devoxx 2015
PDF
Fastest to Mobile with Scalatra + Swagger
Iterative Development with Swagger on the JDK
Swagger 2.0: Latest and Greatest
Writer APIs in Java faster with Swagger Inflector
How to generate a REST CXF3 application from Swagger ApacheConEU 2016
Euroclojure2014: Schema & Swagger - making your Clojure web APIs more awesome
Understanding how to use Swagger and its tools
Document your rest api using swagger - Devoxx 2015
Fastest to Mobile with Scalatra + Swagger

What's hot (20)

PDF
Swagger for-your-api
PPTX
Swagger 2.0 and Model-driven APIs
PDF
API Design in the Modern Era - Architecture Next 2020
PDF
Jcon 2017 How to use Swagger to develop REST applications
PDF
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...
PPTX
Swagger APIs for Humans and Robots (Gluecon)
PDF
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
PDF
Apache Continuum Build, Test, and Release
PDF
JHipster
PDF
Swagger / Quick Start Guide
PPTX
Tooling for the productive front-end developer
PPTX
Magic of web components
PDF
OpenAPI Specification概要
PDF
Full-Stack Development with Spring Boot and VueJS
PDF
Desarrollo de aplicaciones con Grails 3, Angular JS y Spring Security
PPTX
Signal r azurepresentation
PPTX
How we built a job board in one week with JHipster
PPTX
ASP.NET Core
PDF
Mastering Grails 3 Plugins - GR8Conf US 2016
Swagger for-your-api
Swagger 2.0 and Model-driven APIs
API Design in the Modern Era - Architecture Next 2020
Jcon 2017 How to use Swagger to develop REST applications
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...
Swagger APIs for Humans and Robots (Gluecon)
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
Apache Continuum Build, Test, and Release
JHipster
Swagger / Quick Start Guide
Tooling for the productive front-end developer
Magic of web components
OpenAPI Specification概要
Full-Stack Development with Spring Boot and VueJS
Desarrollo de aplicaciones con Grails 3, Angular JS y Spring Security
Signal r azurepresentation
How we built a job board in one week with JHipster
ASP.NET Core
Mastering Grails 3 Plugins - GR8Conf US 2016
Ad

Similar to Swagger - Make your REST APIs accessible - Victor Trakhtenberg (20)

PDF
Swagger code motion talk
PPTX
Swagger - make your API accessible
PPT
A Tour of Swagger for APIs
PPTX
Swagger - Making REST APIs friendlier
PPTX
Everybody loves Swagger
PPTX
Rest API with Swagger and NodeJS
PPTX
Everybody loves Swagger (Massimo Crippa @ Integration Monday)
PPTX
Love your API with Swagger (Gluecon lightning talk)
PPTX
API Description Languages: Which is the Right One for Me?
PPTX
API Description Languages: Which is the Right One for Me?
PPTX
Scaling with swagger
PDF
Developing Faster with Swagger
PPTX
API Design first with Swagger
PPTX
Contract driven development
PPTX
Another API-Blueprint, RAML and Swagger Comparison
PDF
Streamlining API with Swagger.io
PPTX
Introducing swagger
PPTX
Grails with swagger
PDF
Swagger With REST APIs.pptx.pdf
PPTX
How to generate a rest application - DevFest Vienna 2016
Swagger code motion talk
Swagger - make your API accessible
A Tour of Swagger for APIs
Swagger - Making REST APIs friendlier
Everybody loves Swagger
Rest API with Swagger and NodeJS
Everybody loves Swagger (Massimo Crippa @ Integration Monday)
Love your API with Swagger (Gluecon lightning talk)
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
Scaling with swagger
Developing Faster with Swagger
API Design first with Swagger
Contract driven development
Another API-Blueprint, RAML and Swagger Comparison
Streamlining API with Swagger.io
Introducing swagger
Grails with swagger
Swagger With REST APIs.pptx.pdf
How to generate a rest application - DevFest Vienna 2016
Ad

More from Codemotion Tel Aviv (20)

PDF
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
PDF
Angular is one fire(base)! - Shmuela Jacobs
PDF
Demystifying docker networking black magic - Lorenzo Fontana, Kiratech
PDF
Faster deep learning solutions from training to inference - Amitai Armon & Ni...
PDF
Facts about multithreading that'll keep you up at night - Guy Bar on, Vonage
PDF
Master the Art of the AST (and Take Control of Your JS!) - Yonatan Mevorach, ...
PDF
Unleash the power of angular Reactive Forms - Nir Kaufman, 500Tech
PDF
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
PDF
Actors and Microservices - Can two walk together? - Rotem Hermon, Gigya
PDF
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
PDF
My Minecraft Smart Home: Prototyping the internet of uncanny things - Sascha ...
PDF
Distributed Systems explained (with NodeJS) - Bruno Bossola, JUG Torino
PDF
Containerised ASP.NET Core apps with Kubernetes
PDF
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
PDF
The Art of Decomposing Monoliths - Kfir Bloch, Wix
PDF
SOA Lessons Learnt (or Microservices done Better) - Sean Farmar, Particular S...
PDF
S3, Cassandra or Outer Space? Dumping Time Series Data using Spark - Demi Ben...
PDF
Getting Physical with Web Bluetooth - Uri Shaked, BlackBerry
PDF
Web based virtual reality - Tanay Pant, Mozilla
PDF
Material Design Demytified - Ran Nachmany, Google
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
Angular is one fire(base)! - Shmuela Jacobs
Demystifying docker networking black magic - Lorenzo Fontana, Kiratech
Faster deep learning solutions from training to inference - Amitai Armon & Ni...
Facts about multithreading that'll keep you up at night - Guy Bar on, Vonage
Master the Art of the AST (and Take Control of Your JS!) - Yonatan Mevorach, ...
Unleash the power of angular Reactive Forms - Nir Kaufman, 500Tech
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Actors and Microservices - Can two walk together? - Rotem Hermon, Gigya
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
My Minecraft Smart Home: Prototyping the internet of uncanny things - Sascha ...
Distributed Systems explained (with NodeJS) - Bruno Bossola, JUG Torino
Containerised ASP.NET Core apps with Kubernetes
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
The Art of Decomposing Monoliths - Kfir Bloch, Wix
SOA Lessons Learnt (or Microservices done Better) - Sean Farmar, Particular S...
S3, Cassandra or Outer Space? Dumping Time Series Data using Spark - Demi Ben...
Getting Physical with Web Bluetooth - Uri Shaked, BlackBerry
Web based virtual reality - Tanay Pant, Mozilla
Material Design Demytified - Ran Nachmany, Google

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Machine learning based COVID-19 study performance prediction
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
cuic standard and advanced reporting.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
Review of recent advances in non-invasive hemoglobin estimation
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Cloud computing and distributed systems.
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
NewMind AI Monthly Chronicles - July 2025
Understanding_Digital_Forensics_Presentation.pptx
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Machine learning based COVID-19 study performance prediction
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
cuic standard and advanced reporting.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Advanced methodologies resolving dimensionality complications for autism neur...
Advanced Soft Computing BINUS July 2025.pdf
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
GamePlan Trading System Review: Professional Trader's Honest Take
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
Review of recent advances in non-invasive hemoglobin estimation
The AUB Centre for AI in Media Proposal.docx
Cloud computing and distributed systems.

Swagger - Make your REST APIs accessible - Victor Trakhtenberg