SlideShare a Scribd company logo
API Standards
Michael Petychakis
@mpetyx
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards 25-6-2014
958 million websites
60 trillion
web pages
Each API is Unique
Documentation?
Fragile Systems
Different Practices
Different cycles
Think it’s Fun?!
The Answer
API Athens Meetup - API standards 25-6-2014
Narrowing down the
choices
API-Blueprint
RAML
Swagger
What about Hypermedia? ioDocs?
WADL? WSDL 2.0?
So now we want to
know…
What’s behind the name?
How does it model REST?
What tools are available?
Is there a community / following?
What’s it gonna be?
What’s behind the
name?
API-Blueprint RAML Swagger
Format Markdown YAML JSON
Spec License MIT ASL 2.0 / TM ASL 2.0
Available at GitHub GitHub GitHub
Sponsored by Apiary Mulesoft Reverb
Current Version 1A3 0.8 1.2
Initial commit April, 2013 Sep, 2013 July, 2011
Commercial Offering Yes Yes No
API Design Approach Top-down Top-down Bottom-up
How does it model
REST?
API-Blueprint RAML Swagger
Resources X X X (“api”)
Methods/Actions X (“action”) X (“method”) X (“operation”)
Query Parameters X X X
Path/URL Parameters X X X
Header Parameters X X X
Representations
(status codes, mime-types)
X X X
Documentation X X X
How does it model REST –
part 2
API-Blueprint RAML Swagger
Authentication Basic, Digest, Oauth
1&2, (*)
Basic, API-Key,
OAuth 2
Representation Metadata <any> (inline) <any> (inline/external) JSON Schema
(subset)
Nested Resources X X
Composition/Inheritance Resource Models Traits, Resource Types
File inclusions X
API Version metadata X X
Sample Representations X X
What about tooling?
API-Blueprint RAML Swagger
Authoring apiary.io API-Designer (3rd party)
Ad-hoc testing apiary.io API-Console Swagger-UI
Documentation X X X
Mocking X X (3rd party)
Server Code (3rd party) java java,scala,ruby, node.js
Client Code (3rd party) java,groovy,scala,objc,andr
oid,c#,flash,php,python,rub
y,js
Generate from code java, 3rd party (go,python)
Validation X X (java) X
Parsing C++ (nodejs, c#) Java, js Java, js
Some Community Stats
API-Blueprint RAML Swagger
Stackoverflow questions 37 18 596
Most Github Stars
(on single project)
613 478 1859
Total Github projects
(search on name)
72 52 340
Google search (name + “ rest”) 807K 64K 5M
So what gives!?
Swagger:
Pros: high adoption rate, good code-level tooling, large community
Cons: bottom-up, lacks advanced metadata constructs
RAML
Pros: good online design tools and mature supporting infrastructure,
seemingly useful advanced constructs
Cons: very new to the game, low adoption, lacks code-level tooling
API-Blueprint
Pros: good online design tools, good community involvement
Cons: new to the game, low adoption, lacks advanced constructs and
code level tooling
How decide?
What do your API consumers need/expect?
Documentation
Client code / SDKs / etc
Technologies
What do you need?
Approach
Tooling
Technologies
Do you need API management? Commercial Support?
Examples
WADL
Reverb Swagger
Mashery IOdocs
Google Discovery Docs
Apiary Blueprint
RAML
API Athens Meetup - API standards 25-6-2014
Automated API
Provisioning
Problem: How do I use an API without specifically
coding for it?
Answer: Use vocabulary to define operations on
classes and properties
Proposition: Annotations are the result of operations
on entities or the relationships between entities.
Those results are also entities, which may be operated
upon.
Links and Operations
Define operations on entities, types of entities, or their
properties.
When does a property link to an entity?
How do you use pagination to reference and collect linked
entities?
What operations can I perform on an entity, or property of
that entity?
Where does authentication/authorization intersect with
generic API interactions?
What is Hydra?
W3C Community Group for Linked APIs
REST + Linked Data
“At the intersection of web schemas and RESTful web
applications”
API Athens Meetup - API standards 25-6-2014
Keep in touch!
Me
Github mpetyx/
Twitter @mpetyx
Mail mpetyx@epu.ntua.gr
OPENi
GitHub OPENi-ict/
Twitter @openi_ict
Site http://www.openi-ict.eu/
Acknowledgments. This work has been created in the context of the EU-funded project OPENi (Open-Source, Web-Based,
Framework for Integrating Applications with Social Media Services and Personal Cloudlets), Contract No: FP7-ICT-317883.

More Related Content

What's hot (20)

PDF
API Description Languages: Which Is The Right One For Me?
ProgrammableWeb
 
PPTX
API Trends: What to expect in 2012
Apigee | Google Cloud
 
PPTX
Connect js nodejs_api_shubhra
Shubhra Kar
 
PPTX
Api types
Sarah Maddox
 
PPTX
API design principles for accelerated development
Jonathan LeBlanc
 
PDF
APIs Are Forever - How to Design Long-Lasting APIs
LaunchAny
 
PPTX
Huge: Running an API at Scale
Apigee | Google Cloud
 
PPTX
Do's and Don'ts of APIs
Jason Harmon
 
PPTX
API Design - When to buck the trend (Webcast)
Apigee | Google Cloud
 
PPTX
Build Better Apps through API Virtualization
Lorinda Brandon
 
PDF
Scaling Your Team With GraphQL: Why Relationships Matter
Joel Bowen
 
PDF
Node summit workshop
Shubhra Kar
 
PPTX
API Readiness: Visualizing and Virtualizing
Lorinda Brandon
 
PPTX
Api Design
Jason Harmon
 
PDF
Design patterns talk_node_summit
Shubhra Kar
 
PDF
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
apidays
 
PPTX
Google v Oracle: The Future of Software and Fair Use
Aurora Consulting
 
PPTX
Past, Present, Future of APIS
Jason Harmon
 
PPTX
Open Event API
Avi Aryan
 
PDF
Node frameworks talk_hackerdojo
Shubhra Kar
 
API Description Languages: Which Is The Right One For Me?
ProgrammableWeb
 
API Trends: What to expect in 2012
Apigee | Google Cloud
 
Connect js nodejs_api_shubhra
Shubhra Kar
 
Api types
Sarah Maddox
 
API design principles for accelerated development
Jonathan LeBlanc
 
APIs Are Forever - How to Design Long-Lasting APIs
LaunchAny
 
Huge: Running an API at Scale
Apigee | Google Cloud
 
Do's and Don'ts of APIs
Jason Harmon
 
API Design - When to buck the trend (Webcast)
Apigee | Google Cloud
 
Build Better Apps through API Virtualization
Lorinda Brandon
 
Scaling Your Team With GraphQL: Why Relationships Matter
Joel Bowen
 
Node summit workshop
Shubhra Kar
 
API Readiness: Visualizing and Virtualizing
Lorinda Brandon
 
Api Design
Jason Harmon
 
Design patterns talk_node_summit
Shubhra Kar
 
apidays LIVE New York 2021 - Why Software Teams Struggle with API Security Te...
apidays
 
Google v Oracle: The Future of Software and Fair Use
Aurora Consulting
 
Past, Present, Future of APIS
Jason Harmon
 
Open Event API
Avi Aryan
 
Node frameworks talk_hackerdojo
Shubhra Kar
 

Viewers also liked (19)

PDF
FIA Dublin Presentations: Mobile Innovation Economics: What's the future of p...
openi_ict
 
PPTX
FIA Dublin Presentations: Data Driven Services in the Mobile Marketing Indust...
openi_ict
 
PPTX
1st OPENi Hackathon
openi_ict
 
PDF
Máquinas elétricas fritzgerald (pt-br)
Diego Souza
 
PPT
OPENi presentation at AppSecEU 2015
openi_ict
 
PPTX
OPENi Project Introduction @Athens hackathon, September 2014
openi_ict
 
PDF
ברושור חינוך
Michal_04_12_2012
 
PPTX
OPENi Privacy by design @Athens hackathon, September 2014
openi_ict
 
PPTX
Bahasa inggris iii topic 6
Aghoez Shetyawan
 
PDF
Open Innovation in the Mobile App Ecosystem: OPENi Perspective on APIs and Cl...
openi_ict
 
PPTX
FIA Dublin presentations: So what is a Cloudlet and why do I want one? by Joh...
openi_ict
 
PPTX
FIA Dublin presentations: Agenda and Session Objectives
openi_ict
 
PDF
FIA Dublin Presentations: Data driven services: Enabling Privacy and Personal...
openi_ict
 
PPTX
OPENi Innovation in the cloud
openi_ict
 
PPTX
Docker and Vagrant usage in OPENi
openi_ict
 
PDF
FIA Dublin Presentations: The role of APIs in exposing cross-device functiona...
openi_ict
 
PDF
FIA Dublin presentations: Overcoming Enterprise API challenges by Mícheál Ó F...
openi_ict
 
PPTX
A Graph API Framework Incorporating the Cloud Based Services Landscape
openi_ict
 
PPTX
OPENi perspective on APIs and Cloudlets @Athens hackathon, September 2014
openi_ict
 
FIA Dublin Presentations: Mobile Innovation Economics: What's the future of p...
openi_ict
 
FIA Dublin Presentations: Data Driven Services in the Mobile Marketing Indust...
openi_ict
 
1st OPENi Hackathon
openi_ict
 
Máquinas elétricas fritzgerald (pt-br)
Diego Souza
 
OPENi presentation at AppSecEU 2015
openi_ict
 
OPENi Project Introduction @Athens hackathon, September 2014
openi_ict
 
ברושור חינוך
Michal_04_12_2012
 
OPENi Privacy by design @Athens hackathon, September 2014
openi_ict
 
Bahasa inggris iii topic 6
Aghoez Shetyawan
 
Open Innovation in the Mobile App Ecosystem: OPENi Perspective on APIs and Cl...
openi_ict
 
FIA Dublin presentations: So what is a Cloudlet and why do I want one? by Joh...
openi_ict
 
FIA Dublin presentations: Agenda and Session Objectives
openi_ict
 
FIA Dublin Presentations: Data driven services: Enabling Privacy and Personal...
openi_ict
 
OPENi Innovation in the cloud
openi_ict
 
Docker and Vagrant usage in OPENi
openi_ict
 
FIA Dublin Presentations: The role of APIs in exposing cross-device functiona...
openi_ict
 
FIA Dublin presentations: Overcoming Enterprise API challenges by Mícheál Ó F...
openi_ict
 
A Graph API Framework Incorporating the Cloud Based Services Landscape
openi_ict
 
OPENi perspective on APIs and Cloudlets @Athens hackathon, September 2014
openi_ict
 
Ad

Similar to API Athens Meetup - API standards 25-6-2014 (20)

PPTX
API Description Languages: Which is the Right One for Me?
Akana
 
PPTX
RAML - APIs By Design
Uri Sarid
 
ODP
Mulesoft Raml APIs
akshay yeluru
 
PPTX
Mule soft meetup_4_mty_online_oct_2020
Veyra Celina
 
PDF
API Description Languages
Akana
 
PDF
Zen and the Art of REST API documentation - MuCon London 2015
Steve Judd
 
PPTX
Reaching 1 Million APIs and what to do when we get there
3scale
 
PPTX
APIdays 2016 - The State of Web API Languages
Restlet
 
PDF
RAML
Shanky Gupta
 
PDF
Swagger: Restful documentation that won't put you to sleep
Tobias Coetzee
 
PDF
"Design First" APIs with Swagger
scolestock
 
PDF
Past, Present and Future of APIs of Mobile and Web Apps
SmartBear
 
PDF
REST APIs
Arthur De Magalhaes
 
PPTX
Swagger & OpenAPI Spec #openapi
Muhammad Siddiqi
 
PDF
Documenting RESTful APIs with Spring REST Docs
VMware Tanzu
 
PPTX
Managing api development
Ciprian Sorlea CSM-CSPO
 
PPTX
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
Ted Epstein
 
PPTX
The ins and outs of RAML
MuleSoft Meetups
 
PPTX
Tools and techniques for APIs
Jason Harmon
 
PDF
PyCon PL 2014 executable api
Wojtek Erbetowski
 
API Description Languages: Which is the Right One for Me?
Akana
 
RAML - APIs By Design
Uri Sarid
 
Mulesoft Raml APIs
akshay yeluru
 
Mule soft meetup_4_mty_online_oct_2020
Veyra Celina
 
API Description Languages
Akana
 
Zen and the Art of REST API documentation - MuCon London 2015
Steve Judd
 
Reaching 1 Million APIs and what to do when we get there
3scale
 
APIdays 2016 - The State of Web API Languages
Restlet
 
Swagger: Restful documentation that won't put you to sleep
Tobias Coetzee
 
"Design First" APIs with Swagger
scolestock
 
Past, Present and Future of APIs of Mobile and Web Apps
SmartBear
 
Swagger & OpenAPI Spec #openapi
Muhammad Siddiqi
 
Documenting RESTful APIs with Spring REST Docs
VMware Tanzu
 
Managing api development
Ciprian Sorlea CSM-CSPO
 
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
Ted Epstein
 
The ins and outs of RAML
MuleSoft Meetups
 
Tools and techniques for APIs
Jason Harmon
 
PyCon PL 2014 executable api
Wojtek Erbetowski
 
Ad

Recently uploaded (20)

PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
July Patch Tuesday
Ivanti
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 

API Athens Meetup - API standards 25-6-2014

  • 6. 958 million websites 60 trillion web pages
  • 7. Each API is Unique
  • 12. Narrowing down the choices API-Blueprint RAML Swagger What about Hypermedia? ioDocs? WADL? WSDL 2.0?
  • 13. So now we want to know… What’s behind the name? How does it model REST? What tools are available? Is there a community / following? What’s it gonna be?
  • 14. What’s behind the name? API-Blueprint RAML Swagger Format Markdown YAML JSON Spec License MIT ASL 2.0 / TM ASL 2.0 Available at GitHub GitHub GitHub Sponsored by Apiary Mulesoft Reverb Current Version 1A3 0.8 1.2 Initial commit April, 2013 Sep, 2013 July, 2011 Commercial Offering Yes Yes No API Design Approach Top-down Top-down Bottom-up
  • 15. How does it model REST? API-Blueprint RAML Swagger Resources X X X (“api”) Methods/Actions X (“action”) X (“method”) X (“operation”) Query Parameters X X X Path/URL Parameters X X X Header Parameters X X X Representations (status codes, mime-types) X X X Documentation X X X
  • 16. How does it model REST – part 2 API-Blueprint RAML Swagger Authentication Basic, Digest, Oauth 1&2, (*) Basic, API-Key, OAuth 2 Representation Metadata <any> (inline) <any> (inline/external) JSON Schema (subset) Nested Resources X X Composition/Inheritance Resource Models Traits, Resource Types File inclusions X API Version metadata X X Sample Representations X X
  • 17. What about tooling? API-Blueprint RAML Swagger Authoring apiary.io API-Designer (3rd party) Ad-hoc testing apiary.io API-Console Swagger-UI Documentation X X X Mocking X X (3rd party) Server Code (3rd party) java java,scala,ruby, node.js Client Code (3rd party) java,groovy,scala,objc,andr oid,c#,flash,php,python,rub y,js Generate from code java, 3rd party (go,python) Validation X X (java) X Parsing C++ (nodejs, c#) Java, js Java, js
  • 18. Some Community Stats API-Blueprint RAML Swagger Stackoverflow questions 37 18 596 Most Github Stars (on single project) 613 478 1859 Total Github projects (search on name) 72 52 340 Google search (name + “ rest”) 807K 64K 5M
  • 19. So what gives!? Swagger: Pros: high adoption rate, good code-level tooling, large community Cons: bottom-up, lacks advanced metadata constructs RAML Pros: good online design tools and mature supporting infrastructure, seemingly useful advanced constructs Cons: very new to the game, low adoption, lacks code-level tooling API-Blueprint Pros: good online design tools, good community involvement Cons: new to the game, low adoption, lacks advanced constructs and code level tooling
  • 20. How decide? What do your API consumers need/expect? Documentation Client code / SDKs / etc Technologies What do you need? Approach Tooling Technologies Do you need API management? Commercial Support?
  • 22. WADL
  • 27. RAML
  • 29. Automated API Provisioning Problem: How do I use an API without specifically coding for it? Answer: Use vocabulary to define operations on classes and properties Proposition: Annotations are the result of operations on entities or the relationships between entities. Those results are also entities, which may be operated upon.
  • 30. Links and Operations Define operations on entities, types of entities, or their properties. When does a property link to an entity? How do you use pagination to reference and collect linked entities? What operations can I perform on an entity, or property of that entity? Where does authentication/authorization intersect with generic API interactions?
  • 31. What is Hydra? W3C Community Group for Linked APIs REST + Linked Data “At the intersection of web schemas and RESTful web applications”
  • 33. Keep in touch! Me Github mpetyx/ Twitter @mpetyx Mail [email protected] OPENi GitHub OPENi-ict/ Twitter @openi_ict Site http://www.openi-ict.eu/ Acknowledgments. This work has been created in the context of the EU-funded project OPENi (Open-Source, Web-Based, Framework for Integrating Applications with Social Media Services and Personal Cloudlets), Contract No: FP7-ICT-317883.

Editor's Notes

  • #7: Και μονο που αλλαζει η ημερομηνια σε καθε ενα απο αυτα, καθε μερα αυτος ο αριθμος πολλαπλασιαζεται