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 (19)

PPTX
Maintainable API Docs and Other Rainbow Colored Unicorns
Neil Mansilla
 
PPTX
API Description Languages: Which is the Right One for Me?
Akana
 
PDF
Ultimate Guide to 30+ API Documentation Solutions
Bill Doerrfeld
 
PDF
Toronto node js_meetup
Shubhra Kar
 
PPTX
Connect js nodejs_api_shubhra
Shubhra Kar
 
PPTX
API Trends: What to expect in 2012
Apigee | Google Cloud
 
PDF
Node.js Frameworks & Design Patterns Webinar
Shubhra Kar
 
PDF
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
PDF
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
Jorge Ferrer
 
PPTX
Adding Rules on Existing Hypermedia APIs
Michael Petychakis
 
PDF
Punta Dreamin 17 Generic Apex and Tooling Api
Adam Olshansky
 
PPTX
Public API
Amir Zuker
 
PPTX
Triangle Node Meetup : APIs in Minutes with Node.js
Shubhra Kar
 
PDF
REST vs. GraphQL: Critical Look
Nordic APIs
 
PPTX
Api types
Sarah Maddox
 
PDF
Liferay as a headless platform
Jorge Ferrer
 
PPTX
Api Design
Jason Harmon
 
PPTX
Huge: Running an API at Scale
Apigee | Google Cloud
 
PPT
API 101 - Understanding APIs
3scale
 
Maintainable API Docs and Other Rainbow Colored Unicorns
Neil Mansilla
 
API Description Languages: Which is the Right One for Me?
Akana
 
Ultimate Guide to 30+ API Documentation Solutions
Bill Doerrfeld
 
Toronto node js_meetup
Shubhra Kar
 
Connect js nodejs_api_shubhra
Shubhra Kar
 
API Trends: What to expect in 2012
Apigee | Google Cloud
 
Node.js Frameworks & Design Patterns Webinar
Shubhra Kar
 
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
Jorge Ferrer
 
Adding Rules on Existing Hypermedia APIs
Michael Petychakis
 
Punta Dreamin 17 Generic Apex and Tooling Api
Adam Olshansky
 
Public API
Amir Zuker
 
Triangle Node Meetup : APIs in Minutes with Node.js
Shubhra Kar
 
REST vs. GraphQL: Critical Look
Nordic APIs
 
Api types
Sarah Maddox
 
Liferay as a headless platform
Jorge Ferrer
 
Api Design
Jason Harmon
 
Huge: Running an API at Scale
Apigee | Google Cloud
 
API 101 - Understanding APIs
3scale
 

Viewers also liked (14)

PPTX
German Telecoms Market Q3/2016
DSP-Partners
 
PPT
Enterprise API deployment best practice
Sanjay Roy
 
PDF
API Introduction - API Management Workshop Munich from Ronnie Mitra
CA API Management
 
PDF
Best Practice in API Design
Lorna Mitchell
 
PDF
GraphQL vs REST
GreeceJS
 
PDF
Better APIs with GraphQL
Josh Price
 
PDF
GraphQL in an Age of REST
Yos Riady
 
PDF
GraphQL: Enabling a new generation of API developer tools
Sashko Stubailo
 
PPT
Workshop: API Management
WSO2
 
PDF
Best Practices for API Management
WSO2
 
PDF
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Kai Wähner
 
PDF
Architecting an Enterprise API Management Strategy
WSO2
 
PPTX
REST API debate: OData vs GraphQL vs ORDS
Sumit Sarkar
 
PPT
API Management architect presentation
sflynn073
 
German Telecoms Market Q3/2016
DSP-Partners
 
Enterprise API deployment best practice
Sanjay Roy
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
CA API Management
 
Best Practice in API Design
Lorna Mitchell
 
GraphQL vs REST
GreeceJS
 
Better APIs with GraphQL
Josh Price
 
GraphQL in an Age of REST
Yos Riady
 
GraphQL: Enabling a new generation of API developer tools
Sashko Stubailo
 
Workshop: API Management
WSO2
 
Best Practices for API Management
WSO2
 
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Kai Wähner
 
Architecting an Enterprise API Management Strategy
WSO2
 
REST API debate: OData vs GraphQL vs ORDS
Sumit Sarkar
 
API Management architect presentation
sflynn073
 
Ad

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

PPTX
RAML - APIs By Design
Uri Sarid
 
PDF
Designing and Implementing a Multiuser Apps Platform
Apigee | Google Cloud
 
PDF
Content Strategy and Developer Engagement for DevPortals
Axway
 
ODP
Mulesoft Raml APIs
akshay yeluru
 
PPTX
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
Blockchainizator
 
PDF
What Web Framework To Use?
Kasra Khosravi
 
PDF
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
javier ramirez
 
PDF
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
javier ramirez
 
PDF
Smarter RAG Pipelines: Scaling Search with Milvus and Feast
Zilliz
 
PDF
Platforms, Cloud-Native Architectures, and APIs: Chicago Adapt or Die Keynote
Apigee | Google Cloud
 
PDF
Simple Ways to Get Your Organization to Adopt the AsyncAPI Spec
Axway
 
PPTX
2022 APIsecure_Securing APIs with Open Standards
APIsecure_ Official
 
PDF
Api Design Patterns Meap V07 Meap V07 Jj Geewax
mohellrakes
 
PPTX
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
Ted Epstein
 
PDF
Open Ap Is State Of The Market
ConSanFrancisco123
 
PPT
Programming coldfusion with APIs
Nick Tong
 
PPT
Ruby On Rails Presentation
Paul Pajo
 
PPTX
API Design Tour: Dell
Apigee | Google Cloud
 
PDF
Walter api
Nicholas Schiller
 
PDF
Software Development Engineers Ireland
Sean O'Sullivan
 
RAML - APIs By Design
Uri Sarid
 
Designing and Implementing a Multiuser Apps Platform
Apigee | Google Cloud
 
Content Strategy and Developer Engagement for DevPortals
Axway
 
Mulesoft Raml APIs
akshay yeluru
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
Blockchainizator
 
What Web Framework To Use?
Kasra Khosravi
 
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
javier ramirez
 
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
javier ramirez
 
Smarter RAG Pipelines: Scaling Search with Milvus and Feast
Zilliz
 
Platforms, Cloud-Native Architectures, and APIs: Chicago Adapt or Die Keynote
Apigee | Google Cloud
 
Simple Ways to Get Your Organization to Adopt the AsyncAPI Spec
Axway
 
2022 APIsecure_Securing APIs with Open Standards
APIsecure_ Official
 
Api Design Patterns Meap V07 Meap V07 Jj Geewax
mohellrakes
 
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
Ted Epstein
 
Open Ap Is State Of The Market
ConSanFrancisco123
 
Programming coldfusion with APIs
Nick Tong
 
Ruby On Rails Presentation
Paul Pajo
 
API Design Tour: Dell
Apigee | Google Cloud
 
Walter api
Nicholas Schiller
 
Software Development Engineers Ireland
Sean O'Sullivan
 
Ad

More from Michael Petychakis (6)

PPTX
A Graph API Framework - APIdays Barcelona 2015
Michael Petychakis
 
PPTX
Consuming APIs with Python
Michael Petychakis
 
PPTX
Goal based denial and wishful thinking
Michael Petychakis
 
PPTX
Question Answering over Linked Data - Reasoning Issues
Michael Petychakis
 
PPTX
A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...
Michael Petychakis
 
PPTX
Infusing Social Data Analytics into Future Internet applications for Manufact...
Michael Petychakis
 
A Graph API Framework - APIdays Barcelona 2015
Michael Petychakis
 
Consuming APIs with Python
Michael Petychakis
 
Goal based denial and wishful thinking
Michael Petychakis
 
Question Answering over Linked Data - Reasoning Issues
Michael Petychakis
 
A Community-based, Graph API Framework to Integrate and Orchestrate Cloud-Bas...
Michael Petychakis
 
Infusing Social Data Analytics into Future Internet applications for Manufact...
Michael Petychakis
 

Recently uploaded (20)

PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 

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: Και μονο που αλλαζει η ημερομηνια σε καθε ενα απο αυτα, καθε μερα αυτος ο αριθμος πολλαπλασιαζεται