SlideShare a Scribd company logo
Design-Driven
API Development
Sokichi Fujita
Generation of
API Description Languages
Swagger
RAML
API-Blueprint
API Description Languages
• XML
• WADL, RADL, WSDL2
• JSON
• Swagger, I/O Docs
• YAML
• Swagger, RAML
• Markdown
• API-Blueprint
Popular in GitHub, NPM, …
Why
Server
Code
API
Document
SDKs
Specification
Document
Samples
Mock Server
API Console
Test code
Manually developed resources
as a reference
Server
Code
API
Document
SDKs
Samples
Mock Server
API Console
Test code
Manually developed resources
It is incorrect
or
doesn’t exist
Sometimes,
To avoid publishing un-updatable APIs
• Publishing or updating API are not so hard,
• if you can ignore lots of related resources.
• e.g. SDKs, Documents, Tests, Clients, …
Design-Driven
Development
Server
Code
API
Document
SDKs
API
Schema
generate/validate
SamplesAPI ConsoleMock Server
Non-manually developed resources
codegenswagger-UIswagger-node
swagger-spec
swagger-editor
swagger-js
Demo
Demo
• Hacker News API
• Swagger-Node
• Hacker News Client
• React, Swagger-js, Electron
Swagger-nodeElectron
*.yaml
Swagger
Editor
Express
express-swagger
controller
React
Swagger-js
- component
DidMount etc.
state
render
(Dynamically
JS SDK)
Cheerio
https://news.ycombinator.com
Server : Swagger-Node
swagger project create [project name]
swagger project edit
1. Generate a template for express | hapi | restify | sails
2. Write API specs
vim api/controller/[controller file name].js
3. Just write controllers that meet the API specs
Design Driven API Development
filename of the controllers
name of the controller
Client : Swagger-js
var swagger = new SwaggerClient({
url: "http://localhost:8080/swagger.yaml",
success: function() {
swagger.apis.hackernews.fetch(
{page:api}, {responseContentType: 'application/
json'},
function(res) {
:
});
}
});
Dynamically Swagger SDK for JavaScript
Client : Swagger-js with React
var self = this;
var swagger = new SwaggerClient({
url: "http://localhost:8080/swagger.yaml",
success: function() {
swagger.apis.hackernews.fetch(
{page:api}, {responseContentType: 'application/json'},
function(res) {
self.setState({data:res.obj});
});
}
});
at componentDidMount

More Related Content

PPTX
Swagger - make your API accessible
PPTX
Swagger APIs for Humans and Robots (Gluecon)
PPTX
Swagger in the API Lifecycle
PPTX
Rest API with Swagger and NodeJS
PPTX
Building APIs with Node.js and Swagger
PDF
Developing Faster with Swagger
PDF
Implement Web API with Swagger
PDF
Swagger for-your-api
Swagger - make your API accessible
Swagger APIs for Humans and Robots (Gluecon)
Swagger in the API Lifecycle
Rest API with Swagger and NodeJS
Building APIs with Node.js and Swagger
Developing Faster with Swagger
Implement Web API with Swagger
Swagger for-your-api

What's hot (20)

PPTX
Understanding how to use Swagger and its tools
PPTX
Introducing swagger
PDF
Documenting your REST API with Swagger - JOIN 2014
PDF
Quick run in with Swagger
PPT
A Tour of Swagger for APIs
PPTX
Swagger 2.0 and Model-driven APIs
PPTX
Document your rest api using swagger - Devoxx 2015
PDF
Streamlining API with Swagger.io
PPTX
Introducing Swagger
PPTX
Consuming Restful APIs using Swagger v2.0
PPTX
Writer APIs in Java faster with Swagger Inflector
PDF
Exposing Salesforce REST Services Using Swagger
PDF
Swagger / Quick Start Guide
PDF
Swagger 2.0: Latest and Greatest
PPTX
Everybody loves Swagger
PPTX
API Design first with Swagger
PDF
Euroclojure2014: Schema & Swagger - making your Clojure web APIs more awesome
PDF
OpenAPI development with Python
PPTX
What is Swagger?
Understanding how to use Swagger and its tools
Introducing swagger
Documenting your REST API with Swagger - JOIN 2014
Quick run in with Swagger
A Tour of Swagger for APIs
Swagger 2.0 and Model-driven APIs
Document your rest api using swagger - Devoxx 2015
Streamlining API with Swagger.io
Introducing Swagger
Consuming Restful APIs using Swagger v2.0
Writer APIs in Java faster with Swagger Inflector
Exposing Salesforce REST Services Using Swagger
Swagger / Quick Start Guide
Swagger 2.0: Latest and Greatest
Everybody loves Swagger
API Design first with Swagger
Euroclojure2014: Schema & Swagger - making your Clojure web APIs more awesome
OpenAPI development with Python
What is Swagger?
Ad

Viewers also liked (20)

PDF
API Description Languages
PPTX
Another API-Blueprint, RAML and Swagger Comparison
PDF
Ultimate Guide to 30+ API Documentation Solutions
PPTX
Managing api development
PDF
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
PPTX
Design-first API Development using Swagger and Node
PDF
API Developer Experience: Why it Matters, and How Documenting Your API with S...
PDF
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
PDF
WebAPIのこれまでとこれから
PDF
Design & Deploy a data-driven Web API in 2 hours
PDF
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
PDF
API Docs Made Right / RAML - Swagger rant
PDF
Case Study: Rogers Communications Integrates CA API Management and CA Service...
PPTX
Birds Eye View on API Development - v1.0
PPTX
VRとWeb API
PDF
Getting Developers hooked on your API by Nicolas Garnier at Codemotion Dubai
PDF
CA API Management: A DevOps Enabler
PDF
オープンイノベーション事例 アップル
PDF
Battelfield REST, API Development from the trenches
PPT
クルマ情報を扱うREST APIの仕様と課題について
API Description Languages
Another API-Blueprint, RAML and Swagger Comparison
Ultimate Guide to 30+ API Documentation Solutions
Managing api development
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
Design-first API Development using Swagger and Node
API Developer Experience: Why it Matters, and How Documenting Your API with S...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
WebAPIのこれまでとこれから
Design & Deploy a data-driven Web API in 2 hours
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
API Docs Made Right / RAML - Swagger rant
Case Study: Rogers Communications Integrates CA API Management and CA Service...
Birds Eye View on API Development - v1.0
VRとWeb API
Getting Developers hooked on your API by Nicolas Garnier at Codemotion Dubai
CA API Management: A DevOps Enabler
オープンイノベーション事例 アップル
Battelfield REST, API Development from the trenches
クルマ情報を扱うREST APIの仕様と課題について
Ad

Similar to Design Driven API Development (20)

PPTX
Swagger for startups
PDF
Swagger: Restful documentation that won't put you to sleep
PDF
Get Your Node.js API Swaggering with OpenAPI Spec
PPTX
Delivering Developer Tools at Scale
PPTX
Tools and techniques for APIs
PDF
Designing APIs with OpenAPI Spec
PPTX
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
PPTX
Open API Specifications - formerly swagger
PDF
SGCE 2015 REST APIs
PDF
APIs distribuidos con alta escalabilidad
PDF
Stephen Liedig: Building Serverless Backends with AWS Lambda and API Gateway
PDF
Building serverless backends - Tech talk 5 May 2017
PDF
Write Generic Code with the Tooling API
PPTX
API workshop: Introduction to APIs (TC Camp)
PDF
API Description Languages: Which Is The Right One For Me?
PDF
Building Serverless APIs (January 2017)
PDF
Punta Dreamin 17 Generic Apex and Tooling Api
PPTX
Scaling with swagger
PPTX
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
PDF
Always up to date, testable and maintainable documentation with OpenAPI
Swagger for startups
Swagger: Restful documentation that won't put you to sleep
Get Your Node.js API Swaggering with OpenAPI Spec
Delivering Developer Tools at Scale
Tools and techniques for APIs
Designing APIs with OpenAPI Spec
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
Open API Specifications - formerly swagger
SGCE 2015 REST APIs
APIs distribuidos con alta escalabilidad
Stephen Liedig: Building Serverless Backends with AWS Lambda and API Gateway
Building serverless backends - Tech talk 5 May 2017
Write Generic Code with the Tooling API
API workshop: Introduction to APIs (TC Camp)
API Description Languages: Which Is The Right One For Me?
Building Serverless APIs (January 2017)
Punta Dreamin 17 Generic Apex and Tooling Api
Scaling with swagger
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Always up to date, testable and maintainable documentation with OpenAPI

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Big Data Technologies - Introduction.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Machine Learning_overview_presentation.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
MYSQL Presentation for SQL database connectivity
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Approach and Philosophy of On baking technology
PPTX
A Presentation on Artificial Intelligence
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation theory and applications.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Dropbox Q2 2025 Financial Results & Investor Presentation
Big Data Technologies - Introduction.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
“AI and Expert System Decision Support & Business Intelligence Systems”
Diabetes mellitus diagnosis method based random forest with bat algorithm
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine Learning_overview_presentation.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Mobile App Security Testing_ A Comprehensive Guide.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
MYSQL Presentation for SQL database connectivity
The AUB Centre for AI in Media Proposal.docx
Approach and Philosophy of On baking technology
A Presentation on Artificial Intelligence
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation theory and applications.pdf
Machine learning based COVID-19 study performance prediction
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows

Design Driven API Development