SlideShare a Scribd company logo
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
API Description Languages!
Laura Heritage!
Director of API Strategy!
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
What is an API Description Language (API DL)?!
Contract Human DocsMetadataBlueprint
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
What About WSDL2.0 or WADL?!
•  For REST, they are not widely adopted
•  Both are not very “humanly readable”
•  Both are typically auto-generate from code – wouldn’t use
them as a “blueprint” amongst non-technical types
•  WADL doesn’t contain enough information to adequately
describe a RESTful API. Though does have extension points
which are seldom used.
•  WSDL contains almost everything you need but is quite
brittle. If it changes the clients must change too
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
API DL Brings REST to the Enterprise!
“Lack of a way to describe a RESTful services was one of the
largest barriers to REST adoption in the enterprise.”
Governable ReadableShareable
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Many API DL Are Available Today!
Hypermedia
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Most Active API DL Communities!
API-Blueprint RAML* SWAGGER*
Format Markdown YAML JSON
Available at GitHub GitHub GitHub
Sponsored by Apiary Mulesoft Reverb
Current Version 1A3 0.8 1.2
Workgroup No Yes Yes
Initial commit April, 2013 Sep, 2013 July, 2011
API Design
Approach
Top-down Top-down **Bottom-up
* Most Widely Adopted by Enterprises
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
How Do You Choose?!
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Define Key Purpose Behind Using an API DL!
SWAGGER RAML
I need the ability to design the API with technically limited API
stakeholders
-
(new top down tooling
being developed)
X
I want a way to describe and design an API with my technical
team
X X
(has more advanced
meta data constructs
(includes, inheritance,
traits))
I need to validate the requests and responses at runtime X
(swagger-node-
express, swagger -
Play)
X
(Osprey)
I need to easily consume the API specification between two or
more systems
X X
I need documentation for audit and compliance X X
I need exceptional external API developer experiences X X
I need to generate server code X
(node.js, Java)
X
(node.js, Java)
I need to generate client code X limited
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Understand How Your Team Works!
SWAGGER RAML
Do you design before you
code?
- X
Do you generate documents
after you code from your
code?
X X
(early release of JAXRS-to-
RAML)
Do you want docs embedded
in your server code?
X -
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Look At Their Community!
•  Swagger by far has the largest community, since its been around since 2011
•  RAML has gained traction in the enterprise due to the richness of its modeling
capability; API version metatdata, nested resources, composition and inheritance, file
inclusions and top down approach
Generators
SWAGGER RAML
Documentation From Code Clojure, ColdFusion/CFML,
Eiffel, Go, Java, .Net,
Node.js, PHP, Python,
Ruby, Scala
JAX-RS
Spec Parsers Java, js PHP, Ruby, Phython, Java,
Javascript
API Interfaces Java, Node.js Java, Node.js
Client Code Several Developing
Editor Tooling *new in the works based
on YAML, demo’d in May
API Designer, Sublime plugin,
Atom
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
In Action – What Is the Experience?!
•  WishList Application
–  Add a User
–  Get Users
–  Add a wish
–  Get all wishes in the system
–  Get wishes for particular user
•  Filter by price range
•  Filter by merchant
•  Platform : Node.js, Express and Mongo
•  Test
–  Build with RAML
–  Build with SWAGGER Reese’s Birthday Soon
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
My Background !
•  Degree in Computer Science & Mathematic
•  16 years @IBM and 5 Months at @SOASoftwareInc
•  14+ years working with SOAP/REST, SOA, API
•  Over the years I have been a developer, an architect, a
competitive technical sales, a product manager and an
evangelist
•  I always liked to be on the bleeding of edge technology
•  Very hands on
•  I would consider myself a “Sunday” developer. I don’t get to
code as often as I use to. Now I mostly configure products
and do scripting.
•  Spend most of my time working with customer.
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
RAML!
Start with tutorial at RAML.org
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
RAML Editors!
•  API Designer -
http://api-portal.anypoint.mulesoft.com/raml/api-
designer
–  (allows for mocking)
•  Sublime Editor
https://github.com/mulesoft/raml-sublime-
plugin
NOTE: Indentation matters in both
•  Can have 1 to many files
•  I have a very simple API.
I kept mine in 1. Didn’t
use includes, but did play
with them
•  No Security
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Document Generation!
•  RAML to HTML
•  RAML to HTML - PHP
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Thoughts on RAML Experience!
•  Great documentation, samples and tutorial
•  Good way to model your API
–  When writing my server code, I did find I went back to my RAML model to
remember what I was suppose to be doing.
•  It is easy to understand and write, from the basic API perspective.
–  When you get into Includes, Traits, it becomes a little more technical.
•  Community tools
–  Are easy to understand, install and work with.
–  I played with:
•  API Designer
•  RAML Sublime Plugin
•  RAML to HTML
•  Swagger2raml
•  Osprey / Osprey CLI
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
SWAGGER!
Swagger Community
•  https://github.com/wordnik/swagger-spec
Swagger Getting Started
•  https://github.com/wordnik/swagger-spec/wiki
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Three Ways To Create Swagger!
1.  Codegen: Traditional way of creating a Swagger Specification.
The swagger codegen converts annotation in your code to
Swagger Specification
2.  Automatically: swagger-node-express and swagger-play will
create both your REST APIs and your Swagger Specification for
you at the same time
–  https://www.npmjs.org/package/swagger-node-express
3.  Manually: Write the json by hand.
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Used swagger-node-express!
•  Server.js – the node-
express server
•  Model.js - describes
the resources (User,
Wish)
•  Resource.js – defines
the actions for the
resources
Spec
Action
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Swagger Documentation!
Composed of two files:
•  Resource Listing: Lists the APIs that are available and gives a brief
description of the them.
•  API Description: Detailed description of each API in the Resource
Listing.
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Thoughts on SWAGGER Experience!
•  Most widely used API DL to date
•  On working with swagger-node-express:
–  Once you get the hang of it, went smooth and very fun to see results.
–  Key is to get your model.js (resource definitions) and your routes.js for your
data access specified correctly.
–  Definitely not top down. I ended up using my RAML spec to keep me on track.
–  Con - you are really embedding swagger throughout your code. Code which
may live forever, but will swagger?
•  On Codegen creation of swagger:
–  Easy self-explanatory
–  Is still a bottom up approach. Even though you are stubbing out your code as
you are modeling it, it is hard to share and express thoughts with out a lot of
effort up front.
•  Swagger-UI is very useful to help visualize and test your API
•  If you have complex APIs, swagger probably won’t have the the
constructs you need to fully express them.
•  Writing swagger manually in JSON is not fun. It is not very human
readable. A new Swagger Editor project was launched in May.
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Where to do documentation?!
Pros Cons
Document in design and
generate interface and docs
from design
•  Allows for changing docs
without disturbing
production code.
•  Allows for NLS translation
outside of production cycles
•  If backend implementation
changes but interface still
the same, you are okay.
Documentation can get out of
sync with what is running in
production.
Document in code and
generate docs from code
•  Documentation is more
likely to stay in sync with
what is in production
•  If issues with
documentation, need to
edit production code to
regenerate
Embed documentation in
server code and have server
dynamically serve up docs
•  Documentation is more
likely to stay in sync
because it is embedded and
running as part of the
application
•  You are now tied to that
particular API DL
implementation running
your production code
•  If there is user
documentation errors,
production changes are a
must
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
Thoughts On the API DL Focused on Today!
•  All the API DL are starting to provide similar features and functions.
They will continue to get closer and closer.
•  Neither specifications that we focused on today can describe
anything other then a RESTful API/Service.
–  For SOAP based APIs WSDL is still king. An API Platform you choose
should support SOAP based APIs via WSDL as well.
•  Neither specification provides ability for extension, for example:
describing testing and monitoring of the operations
•  Neither specification handles National Language (NLS) of
documentation
•  System to System interactions – Today mostly focused on API
creation and developer consumption. Next step is for system-to-
system integrations
Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved.
References!
•  Another API-Blueprint, RAML, Swagger Comparison – Ole
Lensmar
•  Investigating API Developer Tooling - @DanMayer
Copyright © 2001-2014 SOA Software, Inc. All Rights Reserved.
Questions!

More Related Content

What's hot (20)

Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017
Luca Bianchi
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
Gary Pedretti
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is Native
Justin Mancinelli
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
Sascha Wenninger
 
Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022
Vadym Kazulkin
 
Writing less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group NairobiWriting less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group Nairobi
Vadym Kazulkin
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tips
Tony May
 
Publishing API documentation -- Presentation
Publishing API documentation -- PresentationPublishing API documentation -- Presentation
Publishing API documentation -- Presentation
Tom Johnson
 
Scaling Machine Learning Systems up to Billions of Predictions per Day
Scaling Machine Learning Systems up to Billions of Predictions per DayScaling Machine Learning Systems up to Billions of Predictions per Day
Scaling Machine Learning Systems up to Billions of Predictions per Day
Carmine Paolino
 
6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend
Forrest Chang
 
PHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your RESTPHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your REST
Adam Englander
 
Code with Honor – on the importance and beauty of software programming (Oracl...
Code with Honor – on the importance and beauty of software programming (Oracl...Code with Honor – on the importance and beauty of software programming (Oracl...
Code with Honor – on the importance and beauty of software programming (Oracl...
Lucas Jellema
 
Cloud Native Application Development - build fast, cheap, scalable and agile ...
Cloud Native Application Development - build fast, cheap, scalable and agile ...Cloud Native Application Development - build fast, cheap, scalable and agile ...
Cloud Native Application Development - build fast, cheap, scalable and agile ...
Lucas Jellema
 
Make your Cloud Applications Function for real – A Complete Overview of Oracl...
Make your Cloud Applications Function for real – A Complete Overview of Oracl...Make your Cloud Applications Function for real – A Complete Overview of Oracl...
Make your Cloud Applications Function for real – A Complete Overview of Oracl...
Lucas Jellema
 
Funky serverless features at aws
Funky serverless features at awsFunky serverless features at aws
Funky serverless features at aws
Doug Winter
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
Sander Mangel
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
Cobus Bernard
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
Rodrigo Lima
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Vadym Kazulkin
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017
Luca Bianchi
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
Gary Pedretti
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is Native
Justin Mancinelli
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
Sascha Wenninger
 
Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022
Vadym Kazulkin
 
Writing less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group NairobiWriting less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group Nairobi
Vadym Kazulkin
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tips
Tony May
 
Publishing API documentation -- Presentation
Publishing API documentation -- PresentationPublishing API documentation -- Presentation
Publishing API documentation -- Presentation
Tom Johnson
 
Scaling Machine Learning Systems up to Billions of Predictions per Day
Scaling Machine Learning Systems up to Billions of Predictions per DayScaling Machine Learning Systems up to Billions of Predictions per Day
Scaling Machine Learning Systems up to Billions of Predictions per Day
Carmine Paolino
 
6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend
Forrest Chang
 
PHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your RESTPHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your REST
Adam Englander
 
Code with Honor – on the importance and beauty of software programming (Oracl...
Code with Honor – on the importance and beauty of software programming (Oracl...Code with Honor – on the importance and beauty of software programming (Oracl...
Code with Honor – on the importance and beauty of software programming (Oracl...
Lucas Jellema
 
Cloud Native Application Development - build fast, cheap, scalable and agile ...
Cloud Native Application Development - build fast, cheap, scalable and agile ...Cloud Native Application Development - build fast, cheap, scalable and agile ...
Cloud Native Application Development - build fast, cheap, scalable and agile ...
Lucas Jellema
 
Make your Cloud Applications Function for real – A Complete Overview of Oracl...
Make your Cloud Applications Function for real – A Complete Overview of Oracl...Make your Cloud Applications Function for real – A Complete Overview of Oracl...
Make your Cloud Applications Function for real – A Complete Overview of Oracl...
Lucas Jellema
 
Funky serverless features at aws
Funky serverless features at awsFunky serverless features at aws
Funky serverless features at aws
Doug Winter
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
Sander Mangel
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
Cobus Bernard
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
Rodrigo Lima
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Vadym Kazulkin
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
Shubhra Kar
 

Similar to API Description Languages (20)

API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
Akana
 
Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reese
buildacloud
 
Punta Dreamin 17 Generic Apex and Tooling Api
Punta Dreamin 17 Generic Apex and Tooling ApiPunta Dreamin 17 Generic Apex and Tooling Api
Punta Dreamin 17 Generic Apex and Tooling Api
Adam Olshansky
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
MuleSoft
 
Swagger APIs for Humans and Robots (Gluecon)
Swagger APIs for Humans and Robots (Gluecon)Swagger APIs for Humans and Robots (Gluecon)
Swagger APIs for Humans and Robots (Gluecon)
Tony Tam
 
Are APIs and SOA Converging?
Are APIs and SOA Converging?Are APIs and SOA Converging?
Are APIs and SOA Converging?
Akana
 
Are APIs and SOA Converging?
Are APIs and SOA Converging?Are APIs and SOA Converging?
Are APIs and SOA Converging?
Akana
 
Are APIs and SOA Converging
Are APIs and SOA ConvergingAre APIs and SOA Converging
Are APIs and SOA Converging
Sachin Agarwal
 
Write Generic Code with the Tooling API
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling API
Adam Olshansky
 
Web servicesoverview
Web servicesoverviewWeb servicesoverview
Web servicesoverview
Prabhat gangwar
 
API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?
Akana
 
API and SOA: Two sides of the same coin
API and SOA: Two sides of the same coinAPI and SOA: Two sides of the same coin
API and SOA: Two sides of the same coin
Sachin Agarwal
 
Web servicesoverview
Web servicesoverviewWeb servicesoverview
Web servicesoverview
thisismusthafa
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
Tom Johnson
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidad
Software Guru
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
Domingo Suarez Torres
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
Salesforce Engineering
 
Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for Longevity
MuleSoft
 
APIs and SOA: Two Sides of the Same Coin?
APIs and SOA: Two Sides of the Same Coin?APIs and SOA: Two Sides of the Same Coin?
APIs and SOA: Two Sides of the Same Coin?
Akana
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
apidays
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
Akana
 
Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reese
buildacloud
 
Punta Dreamin 17 Generic Apex and Tooling Api
Punta Dreamin 17 Generic Apex and Tooling ApiPunta Dreamin 17 Generic Apex and Tooling Api
Punta Dreamin 17 Generic Apex and Tooling Api
Adam Olshansky
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
MuleSoft
 
Swagger APIs for Humans and Robots (Gluecon)
Swagger APIs for Humans and Robots (Gluecon)Swagger APIs for Humans and Robots (Gluecon)
Swagger APIs for Humans and Robots (Gluecon)
Tony Tam
 
Are APIs and SOA Converging?
Are APIs and SOA Converging?Are APIs and SOA Converging?
Are APIs and SOA Converging?
Akana
 
Are APIs and SOA Converging?
Are APIs and SOA Converging?Are APIs and SOA Converging?
Are APIs and SOA Converging?
Akana
 
Are APIs and SOA Converging
Are APIs and SOA ConvergingAre APIs and SOA Converging
Are APIs and SOA Converging
Sachin Agarwal
 
Write Generic Code with the Tooling API
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling API
Adam Olshansky
 
API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?
Akana
 
API and SOA: Two sides of the same coin
API and SOA: Two sides of the same coinAPI and SOA: Two sides of the same coin
API and SOA: Two sides of the same coin
Sachin Agarwal
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
Tom Johnson
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidad
Software Guru
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
Salesforce Engineering
 
Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for Longevity
MuleSoft
 
APIs and SOA: Two Sides of the Same Coin?
APIs and SOA: Two Sides of the Same Coin?APIs and SOA: Two Sides of the Same Coin?
APIs and SOA: Two Sides of the Same Coin?
Akana
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
apidays
 

More from Akana (20)

The Latest in API Orchestration, Mediation, and Integration
The Latest in API Orchestration, Mediation, and IntegrationThe Latest in API Orchestration, Mediation, and Integration
The Latest in API Orchestration, Mediation, and Integration
Akana
 
Deconstructing API Security
Deconstructing API SecurityDeconstructing API Security
Deconstructing API Security
Akana
 
Eat Your Microservices Elephant One Bite at a Time
Eat Your Microservices Elephant One Bite at a TimeEat Your Microservices Elephant One Bite at a Time
Eat Your Microservices Elephant One Bite at a Time
Akana
 
API Design Essentials - Akana Platform Overview
API Design Essentials - Akana Platform OverviewAPI Design Essentials - Akana Platform Overview
API Design Essentials - Akana Platform Overview
Akana
 
API Economy - The Making of a Digital Business
API Economy - The Making of a Digital BusinessAPI Economy - The Making of a Digital Business
API Economy - The Making of a Digital Business
Akana
 
Extracting Insights from your API Programs
Extracting Insights from your API ProgramsExtracting Insights from your API Programs
Extracting Insights from your API Programs
Akana
 
Confronting API Security in the Brave New Open Banking Era
Confronting API Security in the Brave New Open Banking EraConfronting API Security in the Brave New Open Banking Era
Confronting API Security in the Brave New Open Banking Era
Akana
 
API Adoption Patterns in Banking & The Promise of Microservices
API Adoption Patterns in Banking & The Promise of MicroservicesAPI Adoption Patterns in Banking & The Promise of Microservices
API Adoption Patterns in Banking & The Promise of Microservices
Akana
 
Realizing Hybrid Cloud: Using IBM Bluemix, APIs, and DataPower
Realizing Hybrid Cloud: Using IBM Bluemix, APIs, and DataPowerRealizing Hybrid Cloud: Using IBM Bluemix, APIs, and DataPower
Realizing Hybrid Cloud: Using IBM Bluemix, APIs, and DataPower
Akana
 
Architecting Mobile Solutions Using Microsoft Azure and Akana
Architecting Mobile Solutions Using Microsoft Azure and AkanaArchitecting Mobile Solutions Using Microsoft Azure and Akana
Architecting Mobile Solutions Using Microsoft Azure and Akana
Akana
 
Digital Healthcare – Realizing Interoperability with APIs
Digital Healthcare – Realizing Interoperability with APIsDigital Healthcare – Realizing Interoperability with APIs
Digital Healthcare – Realizing Interoperability with APIs
Akana
 
Driving Digital Innovation with a Layered API Design Approach
Driving Digital Innovation with a Layered API Design ApproachDriving Digital Innovation with a Layered API Design Approach
Driving Digital Innovation with a Layered API Design Approach
Akana
 
Securing Your APIs against the Recent Vulnerabilities in SSLv2/SSLv3
Securing Your APIs against the Recent Vulnerabilities in SSLv2/SSLv3 Securing Your APIs against the Recent Vulnerabilities in SSLv2/SSLv3
Securing Your APIs against the Recent Vulnerabilities in SSLv2/SSLv3
Akana
 
Microservices: Why Should Businesses Care?
Microservices: Why Should Businesses Care?Microservices: Why Should Businesses Care?
Microservices: Why Should Businesses Care?
Akana
 
Using APIs
Using APIsUsing APIs
Using APIs
Akana
 
Unified Security for Mobile, APIs and the Web
Unified Security for Mobile, APIs and the WebUnified Security for Mobile, APIs and the Web
Unified Security for Mobile, APIs and the Web
Akana
 
Turbo-Charge DataPower to Reach Your SOA Goals
Turbo-Charge DataPower to Reach Your SOA GoalsTurbo-Charge DataPower to Reach Your SOA Goals
Turbo-Charge DataPower to Reach Your SOA Goals
Akana
 
The Science of APIs in a Mobile World:Security, Control and Quality
The Science of APIs in a Mobile World:Security, Control and QualityThe Science of APIs in a Mobile World:Security, Control and Quality
The Science of APIs in a Mobile World:Security, Control and Quality
Akana
 
The Datacenter API
The Datacenter APIThe Datacenter API
The Datacenter API
Akana
 
The Business Value for Internal APIs in the Enterprise
The Business Value for Internal APIs in the EnterpriseThe Business Value for Internal APIs in the Enterprise
The Business Value for Internal APIs in the Enterprise
Akana
 
The Latest in API Orchestration, Mediation, and Integration
The Latest in API Orchestration, Mediation, and IntegrationThe Latest in API Orchestration, Mediation, and Integration
The Latest in API Orchestration, Mediation, and Integration
Akana
 
Deconstructing API Security
Deconstructing API SecurityDeconstructing API Security
Deconstructing API Security
Akana
 
Eat Your Microservices Elephant One Bite at a Time
Eat Your Microservices Elephant One Bite at a TimeEat Your Microservices Elephant One Bite at a Time
Eat Your Microservices Elephant One Bite at a Time
Akana
 
API Design Essentials - Akana Platform Overview
API Design Essentials - Akana Platform OverviewAPI Design Essentials - Akana Platform Overview
API Design Essentials - Akana Platform Overview
Akana
 
API Economy - The Making of a Digital Business
API Economy - The Making of a Digital BusinessAPI Economy - The Making of a Digital Business
API Economy - The Making of a Digital Business
Akana
 
Extracting Insights from your API Programs
Extracting Insights from your API ProgramsExtracting Insights from your API Programs
Extracting Insights from your API Programs
Akana
 
Confronting API Security in the Brave New Open Banking Era
Confronting API Security in the Brave New Open Banking EraConfronting API Security in the Brave New Open Banking Era
Confronting API Security in the Brave New Open Banking Era
Akana
 
API Adoption Patterns in Banking & The Promise of Microservices
API Adoption Patterns in Banking & The Promise of MicroservicesAPI Adoption Patterns in Banking & The Promise of Microservices
API Adoption Patterns in Banking & The Promise of Microservices
Akana
 
Realizing Hybrid Cloud: Using IBM Bluemix, APIs, and DataPower
Realizing Hybrid Cloud: Using IBM Bluemix, APIs, and DataPowerRealizing Hybrid Cloud: Using IBM Bluemix, APIs, and DataPower
Realizing Hybrid Cloud: Using IBM Bluemix, APIs, and DataPower
Akana
 
Architecting Mobile Solutions Using Microsoft Azure and Akana
Architecting Mobile Solutions Using Microsoft Azure and AkanaArchitecting Mobile Solutions Using Microsoft Azure and Akana
Architecting Mobile Solutions Using Microsoft Azure and Akana
Akana
 
Digital Healthcare – Realizing Interoperability with APIs
Digital Healthcare – Realizing Interoperability with APIsDigital Healthcare – Realizing Interoperability with APIs
Digital Healthcare – Realizing Interoperability with APIs
Akana
 
Driving Digital Innovation with a Layered API Design Approach
Driving Digital Innovation with a Layered API Design ApproachDriving Digital Innovation with a Layered API Design Approach
Driving Digital Innovation with a Layered API Design Approach
Akana
 
Securing Your APIs against the Recent Vulnerabilities in SSLv2/SSLv3
Securing Your APIs against the Recent Vulnerabilities in SSLv2/SSLv3 Securing Your APIs against the Recent Vulnerabilities in SSLv2/SSLv3
Securing Your APIs against the Recent Vulnerabilities in SSLv2/SSLv3
Akana
 
Microservices: Why Should Businesses Care?
Microservices: Why Should Businesses Care?Microservices: Why Should Businesses Care?
Microservices: Why Should Businesses Care?
Akana
 
Using APIs
Using APIsUsing APIs
Using APIs
Akana
 
Unified Security for Mobile, APIs and the Web
Unified Security for Mobile, APIs and the WebUnified Security for Mobile, APIs and the Web
Unified Security for Mobile, APIs and the Web
Akana
 
Turbo-Charge DataPower to Reach Your SOA Goals
Turbo-Charge DataPower to Reach Your SOA GoalsTurbo-Charge DataPower to Reach Your SOA Goals
Turbo-Charge DataPower to Reach Your SOA Goals
Akana
 
The Science of APIs in a Mobile World:Security, Control and Quality
The Science of APIs in a Mobile World:Security, Control and QualityThe Science of APIs in a Mobile World:Security, Control and Quality
The Science of APIs in a Mobile World:Security, Control and Quality
Akana
 
The Datacenter API
The Datacenter APIThe Datacenter API
The Datacenter API
Akana
 
The Business Value for Internal APIs in the Enterprise
The Business Value for Internal APIs in the EnterpriseThe Business Value for Internal APIs in the Enterprise
The Business Value for Internal APIs in the Enterprise
Akana
 

Recently uploaded (19)

APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)
APNIC
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)
APNIC
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 

API Description Languages

  • 1. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. API Description Languages! Laura Heritage! Director of API Strategy!
  • 2. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. What is an API Description Language (API DL)?! Contract Human DocsMetadataBlueprint
  • 3. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. What About WSDL2.0 or WADL?! •  For REST, they are not widely adopted •  Both are not very “humanly readable” •  Both are typically auto-generate from code – wouldn’t use them as a “blueprint” amongst non-technical types •  WADL doesn’t contain enough information to adequately describe a RESTful API. Though does have extension points which are seldom used. •  WSDL contains almost everything you need but is quite brittle. If it changes the clients must change too
  • 4. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. API DL Brings REST to the Enterprise! “Lack of a way to describe a RESTful services was one of the largest barriers to REST adoption in the enterprise.” Governable ReadableShareable
  • 5. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Many API DL Are Available Today! Hypermedia
  • 6. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Most Active API DL Communities! API-Blueprint RAML* SWAGGER* Format Markdown YAML JSON Available at GitHub GitHub GitHub Sponsored by Apiary Mulesoft Reverb Current Version 1A3 0.8 1.2 Workgroup No Yes Yes Initial commit April, 2013 Sep, 2013 July, 2011 API Design Approach Top-down Top-down **Bottom-up * Most Widely Adopted by Enterprises
  • 7. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. How Do You Choose?!
  • 8. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Define Key Purpose Behind Using an API DL! SWAGGER RAML I need the ability to design the API with technically limited API stakeholders - (new top down tooling being developed) X I want a way to describe and design an API with my technical team X X (has more advanced meta data constructs (includes, inheritance, traits)) I need to validate the requests and responses at runtime X (swagger-node- express, swagger - Play) X (Osprey) I need to easily consume the API specification between two or more systems X X I need documentation for audit and compliance X X I need exceptional external API developer experiences X X I need to generate server code X (node.js, Java) X (node.js, Java) I need to generate client code X limited
  • 9. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Understand How Your Team Works! SWAGGER RAML Do you design before you code? - X Do you generate documents after you code from your code? X X (early release of JAXRS-to- RAML) Do you want docs embedded in your server code? X -
  • 10. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Look At Their Community! •  Swagger by far has the largest community, since its been around since 2011 •  RAML has gained traction in the enterprise due to the richness of its modeling capability; API version metatdata, nested resources, composition and inheritance, file inclusions and top down approach Generators SWAGGER RAML Documentation From Code Clojure, ColdFusion/CFML, Eiffel, Go, Java, .Net, Node.js, PHP, Python, Ruby, Scala JAX-RS Spec Parsers Java, js PHP, Ruby, Phython, Java, Javascript API Interfaces Java, Node.js Java, Node.js Client Code Several Developing Editor Tooling *new in the works based on YAML, demo’d in May API Designer, Sublime plugin, Atom
  • 11. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. In Action – What Is the Experience?! •  WishList Application –  Add a User –  Get Users –  Add a wish –  Get all wishes in the system –  Get wishes for particular user •  Filter by price range •  Filter by merchant •  Platform : Node.js, Express and Mongo •  Test –  Build with RAML –  Build with SWAGGER Reese’s Birthday Soon
  • 12. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. My Background ! •  Degree in Computer Science & Mathematic •  16 years @IBM and 5 Months at @SOASoftwareInc •  14+ years working with SOAP/REST, SOA, API •  Over the years I have been a developer, an architect, a competitive technical sales, a product manager and an evangelist •  I always liked to be on the bleeding of edge technology •  Very hands on •  I would consider myself a “Sunday” developer. I don’t get to code as often as I use to. Now I mostly configure products and do scripting. •  Spend most of my time working with customer.
  • 13. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. RAML! Start with tutorial at RAML.org
  • 14. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. RAML Editors! •  API Designer - http://api-portal.anypoint.mulesoft.com/raml/api- designer –  (allows for mocking) •  Sublime Editor https://github.com/mulesoft/raml-sublime- plugin NOTE: Indentation matters in both •  Can have 1 to many files •  I have a very simple API. I kept mine in 1. Didn’t use includes, but did play with them •  No Security
  • 15. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Document Generation! •  RAML to HTML •  RAML to HTML - PHP
  • 16. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Thoughts on RAML Experience! •  Great documentation, samples and tutorial •  Good way to model your API –  When writing my server code, I did find I went back to my RAML model to remember what I was suppose to be doing. •  It is easy to understand and write, from the basic API perspective. –  When you get into Includes, Traits, it becomes a little more technical. •  Community tools –  Are easy to understand, install and work with. –  I played with: •  API Designer •  RAML Sublime Plugin •  RAML to HTML •  Swagger2raml •  Osprey / Osprey CLI
  • 17. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. SWAGGER! Swagger Community •  https://github.com/wordnik/swagger-spec Swagger Getting Started •  https://github.com/wordnik/swagger-spec/wiki
  • 18. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Three Ways To Create Swagger! 1.  Codegen: Traditional way of creating a Swagger Specification. The swagger codegen converts annotation in your code to Swagger Specification 2.  Automatically: swagger-node-express and swagger-play will create both your REST APIs and your Swagger Specification for you at the same time –  https://www.npmjs.org/package/swagger-node-express 3.  Manually: Write the json by hand.
  • 19. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Used swagger-node-express! •  Server.js – the node- express server •  Model.js - describes the resources (User, Wish) •  Resource.js – defines the actions for the resources Spec Action
  • 20. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Swagger Documentation! Composed of two files: •  Resource Listing: Lists the APIs that are available and gives a brief description of the them. •  API Description: Detailed description of each API in the Resource Listing.
  • 21. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Thoughts on SWAGGER Experience! •  Most widely used API DL to date •  On working with swagger-node-express: –  Once you get the hang of it, went smooth and very fun to see results. –  Key is to get your model.js (resource definitions) and your routes.js for your data access specified correctly. –  Definitely not top down. I ended up using my RAML spec to keep me on track. –  Con - you are really embedding swagger throughout your code. Code which may live forever, but will swagger? •  On Codegen creation of swagger: –  Easy self-explanatory –  Is still a bottom up approach. Even though you are stubbing out your code as you are modeling it, it is hard to share and express thoughts with out a lot of effort up front. •  Swagger-UI is very useful to help visualize and test your API •  If you have complex APIs, swagger probably won’t have the the constructs you need to fully express them. •  Writing swagger manually in JSON is not fun. It is not very human readable. A new Swagger Editor project was launched in May.
  • 22. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Where to do documentation?! Pros Cons Document in design and generate interface and docs from design •  Allows for changing docs without disturbing production code. •  Allows for NLS translation outside of production cycles •  If backend implementation changes but interface still the same, you are okay. Documentation can get out of sync with what is running in production. Document in code and generate docs from code •  Documentation is more likely to stay in sync with what is in production •  If issues with documentation, need to edit production code to regenerate Embed documentation in server code and have server dynamically serve up docs •  Documentation is more likely to stay in sync because it is embedded and running as part of the application •  You are now tied to that particular API DL implementation running your production code •  If there is user documentation errors, production changes are a must
  • 23. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. Thoughts On the API DL Focused on Today! •  All the API DL are starting to provide similar features and functions. They will continue to get closer and closer. •  Neither specifications that we focused on today can describe anything other then a RESTful API/Service. –  For SOAP based APIs WSDL is still king. An API Platform you choose should support SOAP based APIs via WSDL as well. •  Neither specification provides ability for extension, for example: describing testing and monitoring of the operations •  Neither specification handles National Language (NLS) of documentation •  System to System interactions – Today mostly focused on API creation and developer consumption. Next step is for system-to- system integrations
  • 24. Copyright © 2001-2013 SOA Software, Inc. All Rights Reserved. References! •  Another API-Blueprint, RAML, Swagger Comparison – Ole Lensmar •  Investigating API Developer Tooling - @DanMayer
  • 25. Copyright © 2001-2014 SOA Software, Inc. All Rights Reserved. Questions!