SlideShare a Scribd company logo
1 of 118
Download to read offline
Bringing OpenAPI to DevOps
Vincenzo Chianese — @d3dvincent
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
• Where are we at with OpenAPI
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
• Where are we at with OpenAPI
• Current usages and tools
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
• Where are we at with OpenAPI
• Current usages and tools
• What’s up with OpenAPI at runtime
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
• Where are we at with OpenAPI
• Current usages and tools
• What’s up with OpenAPI at runtime
• Use cases
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
• Where are we at with OpenAPI
• Current usages and tools
• What’s up with OpenAPI at runtime
• Use cases
• API Gateway support
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
• Where are we at with OpenAPI
• Current usages and tools
• What’s up with OpenAPI at runtime
• Use cases
• API Gateway support
• What can we do better
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
• Where are we at with OpenAPI
• Current usages and tools
• What’s up with OpenAPI at runtime
• Use cases
• API Gateway support
• What can we do better
• Live demo
StoplightMonday, May 20, 2019 @d3dvincent 2
Agenda
• Where are we at with OpenAPI
• Current usages and tools
• What’s up with OpenAPI at runtime
• Use cases
• API Gateway support
• What can we do better
• Live demo
• Takeaways and questions
StoplightMonday, May 20, 2019 @d3dvincent 3
Vincenzo Chianese
StoplightMonday, May 20, 2019 @d3dvincent 3
Vincenzo Chianese
StoplightMonday, May 20, 2019 @d3dvincent 3
Vincenzo Chianese
Software Developer @ Stoplight
StoplightMonday, May 20, 2019 @d3dvincent 3
Vincenzo Chianese
Software Developer @ Stoplight
Maintainer @ Express Gateway
StoplightMonday, May 20, 2019 @d3dvincent 3
Vincenzo Chianese
Software Developer @ Stoplight
Maintainer @ Express Gateway
Auth0 Ambassador
StoplightMonday, May 20, 2019 @d3dvincent 3
Vincenzo Chianese
Software Developer @ Stoplight
Maintainer @ Express Gateway
Auth0 Ambassador
Google Developer Expert
StoplightMonday, May 20, 2019 @d3dvincent 3
Vincenzo Chianese
• vincenzo@express-gateway.io

• vincenzo@stoplight.io

• https://vncz.js.org/

• https://twitter.com/D3DVincent

• https://github.com/XVincentX
Software Developer @ Stoplight
Maintainer @ Express Gateway
Auth0 Ambassador
Google Developer Expert
StoplightMonday, May 20, 2019 @d3dvincent
OpenAPI
4
StoplightMonday, May 20, 2019 @d3dvincent
OpenAPI
4
The OpenAPI Specification (OAS) defines a standard,
programming language-agnostic interface description
for REST APIs, which allows both humans and
computers to discover and understand the capabilities
of a service
StoplightMonday, May 20, 2019 @d3dvincent
OpenAPI
4
The OpenAPI Specification (OAS) defines a standard,
programming language-agnostic interface description
for REST APIs, which allows both humans and
computers to discover and understand the capabilities
of a service
Use cases for machine-readable API definition
documents include, but are not limited to: interactive
documentation; code generation for documentation,
clients, and servers; and automation of test cases.
StoplightMonday, May 20, 2019 @d3dvincent
OpenAPI
4
The OpenAPI Specification (OAS) defines a standard,
programming language-agnostic interface description
for REST APIs, which allows both humans and
computers to discover and understand the capabilities
of a service
Use cases for machine-readable API definition
documents include, but are not limited to: interactive
documentation; code generation for documentation,
clients, and servers; and automation of test cases.
— OpenAPI Official Repository
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
StoplightMonday, May 20, 2019 @d3dvincent
{
"swagger": "2.0",
"info": {
"description": "This is a sample server Petstore server.",
"version": "1.0.0",
"title": "Swagger Petstore",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"email": "apiteam@swagger.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
5
Interactive documentation
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
ToC
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
ToC
Request/
Response
description
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
ToC
Request/
Response
description
Online client
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
ToC
Request/
Response
description
Online client
Linting
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
ToC
Request/
Response
description
Online client
Linting
Search
Features
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
ToC
Request/
Response
description
Online client
Linting
Search
Features
Client
generation
StoplightMonday, May 20, 2019 @d3dvincent 5
Interactive documentation
ToC
Request/
Response
description
Online client
Linting
Search
Features
Client
generation
Content/
Type
StoplightMonday, May 20, 2019 @d3dvincent 6
Code generation
{
"swagger": "2.0",
"info": {
"description": "This is a sample server Petstore server.",
"version": "1.0.0",
"title": "Swagger Petstore",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"email": "apiteam@swagger.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
StoplightMonday, May 20, 2019 @d3dvincent 6
Code generation
const client = require(‘petstore-client')
(process.env.PETSTORE_API_KEY);
client.pets.create({
name: 'Doogy',
age: 2
}).then(() => {
console.log("Pet created correctly!");
}).catch(() => {
console.error("Something went wrong")
});
StoplightMonday, May 20, 2019 @d3dvincent 6
Code generation
const client = require(‘petstore-client')
(process.env.PETSTORE_API_KEY);
client.pets.create({
name: 'Doogy',
age: 2
}).then(() => {
console.log("Pet created correctly!");
}).catch(() => {
console.error("Something went wrong")
});
Base URL and
authentication
StoplightMonday, May 20, 2019 @d3dvincent 6
Code generation
const client = require(‘petstore-client')
(process.env.PETSTORE_API_KEY);
client.pets.create({
name: 'Doogy',
age: 2
}).then(() => {
console.log("Pet created correctly!");
}).catch(() => {
console.error("Something went wrong")
});
Base URL and
authentication
URL mapping
StoplightMonday, May 20, 2019 @d3dvincent 6
Code generation
const client = require(‘petstore-client')
(process.env.PETSTORE_API_KEY);
client.pets.create({
name: 'Doogy',
age: 2
}).then(() => {
console.log("Pet created correctly!");
}).catch(() => {
console.error("Something went wrong")
});
Base URL and
authentication
URL mapping
Parameters
mapping
StoplightMonday, May 20, 2019 @d3dvincent 6
Code generation
const client = require(‘petstore-client')
(process.env.PETSTORE_API_KEY);
client.pets.create({
name: 'Doogy',
age: 2
}).then(() => {
console.log("Pet created correctly!");
}).catch(() => {
console.error("Something went wrong")
});
Base URL and
authentication
URL mapping
Parameters
mapping
Success and
error handlers
StoplightMonday, May 20, 2019 @d3dvincent 7
Automation of test cases
StoplightMonday, May 20, 2019 @d3dvincent 7
Automation of test cases
Schema
validation
StoplightMonday, May 20, 2019 @d3dvincent 7
Automation of test cases
Schema
validation
File
coverage
StoplightMonday, May 20, 2019 @d3dvincent 8
Linting
StoplightMonday, May 20, 2019 @d3dvincent 8
Linting
Best
Practices
StoplightMonday, May 20, 2019 @d3dvincent 8
Linting
Best
Practices
Business
rules
StoplightMonday, May 20, 2019 @d3dvincent 8
Linting
StoplightMonday, May 20, 2019 @d3dvincent 8
Linting
• Open Source Linting Engine
StoplightMonday, May 20, 2019 @d3dvincent 8
Linting
• Open Source Linting Engine
• Based on https://speccy.io
StoplightMonday, May 20, 2019 @d3dvincent 8
Linting
• Open Source Linting Engine
• Based on https://speccy.io
• https://github.com/stoplightio/spectral
StoplightMonday, May 20, 2019 @d3dvincent 9
Mocking
StoplightMonday, May 20, 2019 @d3dvincent 9
Mocking
Try the API
StoplightMonday, May 20, 2019 @d3dvincent 9
Mocking
Try the API
Stub the
responses
StoplightMonday, May 20, 2019 @d3dvincent 9
Mocking
StoplightMonday, May 20, 2019 @d3dvincent 9
Mocking
• Prism 3
StoplightMonday, May 20, 2019 @d3dvincent 9
Mocking
• Prism 3
• Open Source Mock Server
StoplightMonday, May 20, 2019 @d3dvincent 9
Mocking
• Prism 3
• Open Source Mock Server
• Complete rewrite in TypeScript
StoplightMonday, May 20, 2019 @d3dvincent 9
Mocking
• Prism 3
• Open Source Mock Server
• Complete rewrite in TypeScript
• https://github.com/stoplightio/prism
StoplightMonday, May 20, 2019 @d3dvincent 10
What about the runtime?
🤔
StoplightMonday, May 20, 2019 @d3dvincent 11
OpenAPI in your runtime: today
StoplightMonday, May 20, 2019 @d3dvincent 11
OpenAPI in your runtime: today
• API Monitoring
StoplightMonday, May 20, 2019 @d3dvincent 11
OpenAPI in your runtime: today
• API Monitoring
• API Usage Statistics
StoplightMonday, May 20, 2019 @d3dvincent 11
OpenAPI in your runtime: today
• API Monitoring
• API Usage Statistics
• API Analysis and feedback collection
StoplightMonday, May 20, 2019 @d3dvincent 12
OpenAPI as a source for verification
StoplightMonday, May 20, 2019 @d3dvincent 12
OpenAPI as a source for verification
client.pets.list()
StoplightMonday, May 20, 2019 @d3dvincent 12
OpenAPI as a source for verification
client.pets.list()
GET /api/pets

HOST: petstore.com
Accept: application/json
StoplightMonday, May 20, 2019 @d3dvincent 12
OpenAPI as a source for verification
client.pets.list()
GET /api/pets

HOST: petstore.com
Accept: application/json
• Most used endpoints
StoplightMonday, May 20, 2019 @d3dvincent 12
OpenAPI as a source for verification
client.pets.list()
GET /api/pets

HOST: petstore.com
Accept: application/json
• Most used endpoints
• Most failing endpoints
StoplightMonday, May 20, 2019 @d3dvincent 12
OpenAPI as a source for verification
client.pets.list()
GET /api/pets

HOST: petstore.com
Accept: application/json
• Most used endpoints
• Most failing endpoints
• Most common scenarios
StoplightMonday, May 20, 2019 @d3dvincent 13
…what about ops?
🤔
StoplightMonday, May 20, 2019 @d3dvincent 13
…what about ops?
🤔
StoplightMonday, May 20, 2019 @d3dvincent 13
…what about ops?
🤔
• Safely rollout a new API Section
StoplightMonday, May 20, 2019 @d3dvincent 13
…what about ops?
🤔
• Safely rollout a new API Section
• Set an API Section as deprecated
StoplightMonday, May 20, 2019 @d3dvincent 13
…what about ops?
🤔
• Safely rollout a new API Section
• Set an API Section as deprecated
• Changes in security requirements
StoplightMonday, May 20, 2019 @d3dvincent 13
…what about ops?
🤔
• Safely rollout a new API Section
• Set an API Section as deprecated
• Changes in security requirements
• Changes in validation rules
StoplightMonday, May 20, 2019 @d3dvincent 13
…what about ops?
🤔
• Safely rollout a new API Section
• Set an API Section as deprecated
• Changes in security requirements
• Changes in validation rules
• Redirects
StoplightMonday, May 20, 2019 @d3dvincent 13
…what about ops?
• Safely rollout a new API Section
• Set an API Section as deprecated
• Changes in security requirements
• Changes in validation rules
• Redirects
😫
StoplightMonday, May 20, 2019 @d3dvincent 14
API Gateway
StoplightMonday, May 20, 2019 @d3dvincent 14
API Gateway
• Limited configuration surface
StoplightMonday, May 20, 2019 @d3dvincent 14
API Gateway
• Limited configuration surface
• Almost 1:1 match with OpenAPI description file
StoplightMonday, May 20, 2019 @d3dvincent 14
API Gateway
• Limited configuration surface
• Almost 1:1 match with OpenAPI description file
• (some) solutions can be declaratively configured
StoplightMonday, May 20, 2019 @d3dvincent 15
AWS API Gateway
StoplightMonday, May 20, 2019 @d3dvincent 15
AWS API Gateway
• OpenAPI 2 support
StoplightMonday, May 20, 2019 @d3dvincent 15
AWS API Gateway
• OpenAPI 2 support
• OpenAPI 3 support
StoplightMonday, May 20, 2019 @d3dvincent 15
AWS API Gateway
• OpenAPI 2 support
• OpenAPI 3 support
• Proprietary extensions
StoplightMonday, May 20, 2019 @d3dvincent 15
AWS API Gateway
• OpenAPI 2 support
• OpenAPI 3 support
• Proprietary extensions
• Document Upload API
StoplightMonday, May 20, 2019 @d3dvincent 15
AWS API Gateway
• OpenAPI 2 support
• OpenAPI 3 support
• Proprietary extensions
• Document Upload API
• Merge feature
StoplightMonday, May 20, 2019 @d3dvincent 16
Apigee Edge
StoplightMonday, May 20, 2019 @d3dvincent 16
Apigee Edge
• OpenAPI 2.0 support
StoplightMonday, May 20, 2019 @d3dvincent 16
Apigee Edge
• OpenAPI 2.0 support
• OpenAPI 3.0 support
StoplightMonday, May 20, 2019 @d3dvincent 16
Apigee Edge
• OpenAPI 2.0 support
• OpenAPI 3.0 support
• No documented extensions
StoplightMonday, May 20, 2019 @d3dvincent 16
Apigee Edge
• OpenAPI 2.0 support
• OpenAPI 3.0 support
• No documented extensions
• Project Upload API
StoplightMonday, May 20, 2019 @d3dvincent 17
Microsoft API Management
StoplightMonday, May 20, 2019 @d3dvincent 17
Microsoft API Management
• OpenAPI 2.0 support
StoplightMonday, May 20, 2019 @d3dvincent 17
Microsoft API Management
• OpenAPI 2.0 support
• OpenAPI 3.0 support
StoplightMonday, May 20, 2019 @d3dvincent 17
Microsoft API Management
• OpenAPI 2.0 support
• OpenAPI 3.0 support
• Few, not super important, extensions
StoplightMonday, May 20, 2019 @d3dvincent 17
Microsoft API Management
• OpenAPI 2.0 support
• OpenAPI 3.0 support
• Few, not super important, extensions
• Project Upload API
StoplightMonday, May 20, 2019 @d3dvincent 18
Open Source Solutions
StoplightMonday, May 20, 2019 @d3dvincent 18
Open Source Solutions
The situation is not that cool
StoplightMonday, May 20, 2019 @d3dvincent 18
Open Source Solutions
The situation is not that cool
Express Gateway
StoplightMonday, May 20, 2019 @d3dvincent 19
Express Gateway in a nutshell
StoplightMonday, May 20, 2019 @d3dvincent 19
Express Gateway in a nutshell
Express Gateway
StoplightMonday, May 20, 2019 @d3dvincent 19
Express Gateway in a nutshell
Express Gateway Trusted by several companies
StoplightMonday, May 20, 2019 @d3dvincent 19
Express Gateway in a nutshell
Express Gateway Trusted by several companies
StoplightMonday, May 20, 2019 @d3dvincent 20
Talk is cheap; show me the code
StoplightMonday, May 20, 2019 @d3dvincent 21
Takeaways and open questions
StoplightMonday, May 20, 2019 @d3dvincent 21
Takeaways and open questions
• OpenAPI aren’t a first class citizens for Open Source API Gateways
StoplightMonday, May 20, 2019 @d3dvincent 21
Takeaways and open questions
• OpenAPI aren’t a first class citizens for Open Source API Gateways
• They just do not care of its support
StoplightMonday, May 20, 2019 @d3dvincent 21
Takeaways and open questions
• OpenAPI aren’t a first class citizens for Open Source API Gateways
• They just do not care of its support
• Not the right tool for the job
StoplightMonday, May 20, 2019 @d3dvincent 21
Takeaways and open questions
• OpenAPI aren’t a first class citizens for Open Source API Gateways
• They just do not care of its support
• Not the right tool for the job
• OpenAPI documents alone aren’t enough to describe all the aspects of an API
StoplightMonday, May 20, 2019 @d3dvincent 21
Takeaways and open questions
• OpenAPI aren’t a first class citizens for Open Source API Gateways
• They just do not care of its support
• Not the right tool for the job
• OpenAPI documents alone aren’t enough to describe all the aspects of an API
• OpenAPI specifications need to be expanded
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
• Use an API Gateway
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
• Use an API Gateway
• Put as much as you can on it (security, rate limiting, payload validation)
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
• Use an API Gateway
• Put as much as you can on it (security, rate limiting, payload validation)
• You do not need micro services to use an API Gateway
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
• Use an API Gateway
• Put as much as you can on it (security, rate limiting, payload validation)
• You do not need micro services to use an API Gateway
• Make sure what exposes matches what’s declared in the OpenAPI spec file
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
• Use an API Gateway
• Put as much as you can on it (security, rate limiting, payload validation)
• You do not need micro services to use an API Gateway
• Make sure what exposes matches what’s declared in the OpenAPI spec file
• Prefer a solution that is declarative
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
• Use an API Gateway
• Put as much as you can on it (security, rate limiting, payload validation)
• You do not need micro services to use an API Gateway
• Make sure what exposes matches what’s declared in the OpenAPI spec file
• Prefer a solution that is declarative
• It’s going to be easier to write automation scripts
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
• Use an API Gateway
• Put as much as you can on it (security, rate limiting, payload validation)
• You do not need micro services to use an API Gateway
• Make sure what exposes matches what’s declared in the OpenAPI spec file
• Prefer a solution that is declarative
• It’s going to be easier to write automation scripts
• Refrain from using custom extension
StoplightMonday, May 20, 2019 @d3dvincent 22
The rules (to make it happen)
• Use an API Gateway
• Put as much as you can on it (security, rate limiting, payload validation)
• You do not need micro services to use an API Gateway
• Make sure what exposes matches what’s declared in the OpenAPI spec file
• Prefer a solution that is declarative
• It’s going to be easier to write automation scripts
• Refrain from using custom extension
• It will complicate the things the day these automations will be the standard for all the
solutions
Thank you!
• vincenzo@express-gateway.io
• vincenzo@stoplight.io
• https://vncz.js.org/
• https://twitter.com/D3DVincent
• https://github.com/XVincentX

More Related Content

Similar to Bringing OpenAPI to DevOps: How OpenAPI Specification Enables Interactive Documentation, Code Generation, Automated Testing and More

The rise of industry 4.0 makes your manufacturing smarter
The rise of industry 4.0 makes your manufacturing smarterThe rise of industry 4.0 makes your manufacturing smarter
The rise of industry 4.0 makes your manufacturing smarterJoseph Wei
 
micro:bit IET - Nov 2019
micro:bit IET - Nov 2019micro:bit IET - Nov 2019
micro:bit IET - Nov 2019Hal Speed
 
How ChatGPT led OpenAPI's Recent Spike in Popularity
How ChatGPT led OpenAPI's Recent Spike in PopularityHow ChatGPT led OpenAPI's Recent Spike in Popularity
How ChatGPT led OpenAPI's Recent Spike in PopularityPostman
 
It's 2019 & I'm still using Python 2! Should I be worried?
It's 2019 & I'm still using Python 2! Should I be worried?It's 2019 & I'm still using Python 2! Should I be worried?
It's 2019 & I'm still using Python 2! Should I be worried?Sebastian Witowski
 
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
5 Revolutionary Technologies Technical Communicators Can’t Afford To IgnoreScott Abel
 
Technical communication futurist by Scott Abel
Technical communication futurist by Scott AbelTechnical communication futurist by Scott Abel
Technical communication futurist by Scott AbelMaxwell Hoffmann
 
Smartphone Reporting Done Smarter
Smartphone Reporting Done SmarterSmartphone Reporting Done Smarter
Smartphone Reporting Done SmarterVictor Hernandez
 
Michael Collins_TravelMedia.ie_SATW Sept 2022_Bogota Colombia_presentation.pptx
Michael Collins_TravelMedia.ie_SATW Sept 2022_Bogota Colombia_presentation.pptxMichael Collins_TravelMedia.ie_SATW Sept 2022_Bogota Colombia_presentation.pptx
Michael Collins_TravelMedia.ie_SATW Sept 2022_Bogota Colombia_presentation.pptxTravelMedia.ie
 
DPS2019 data scientist in the real estate industry
DPS2019 data scientist in the real estate industry DPS2019 data scientist in the real estate industry
DPS2019 data scientist in the real estate industry Mia Chang
 
Intro to Hybrid Mobile Development && Ionic
Intro to Hybrid Mobile Development && IonicIntro to Hybrid Mobile Development && Ionic
Intro to Hybrid Mobile Development && IonicFioriela Bego
 
Intro to Hybrid Mobile Development && Ionic
Intro to Hybrid Mobile Development && IonicIntro to Hybrid Mobile Development && Ionic
Intro to Hybrid Mobile Development && IonicCommit Software Sh.p.k.
 
The rise of industry 4.0 makes your manufacturing smarter by joseph wei oct2019
The rise of industry 4.0 makes your manufacturing smarter by joseph wei oct2019The rise of industry 4.0 makes your manufacturing smarter by joseph wei oct2019
The rise of industry 4.0 makes your manufacturing smarter by joseph wei oct2019Joseph Wei
 
Factoring E-A-T Into Your 2020 SEO Strategy | Lily Ray
Factoring E-A-T Into Your 2020 SEO Strategy | Lily RayFactoring E-A-T Into Your 2020 SEO Strategy | Lily Ray
Factoring E-A-T Into Your 2020 SEO Strategy | Lily RayLily Ray
 
OriginStamp: Trusted Time Stamping via the Bitcoin Blockchain
OriginStamp: Trusted Time Stamping via the Bitcoin BlockchainOriginStamp: Trusted Time Stamping via the Bitcoin Blockchain
OriginStamp: Trusted Time Stamping via the Bitcoin BlockchainETH-Bibliothek
 
APIdays Paris 2019 - How we addressed our 100% API Strategy in a major worldw...
APIdays Paris 2019 - How we addressed our 100% API Strategy in a major worldw...APIdays Paris 2019 - How we addressed our 100% API Strategy in a major worldw...
APIdays Paris 2019 - How we addressed our 100% API Strategy in a major worldw...apidays
 
[WSO2 Integration Summit London 2019] Transforming Your Business through APIs
[WSO2 Integration Summit London 2019] Transforming Your Business through APIs[WSO2 Integration Summit London 2019] Transforming Your Business through APIs
[WSO2 Integration Summit London 2019] Transforming Your Business through APIsWSO2
 
The Future of Modern Android Development.pptx
The Future of Modern Android Development.pptxThe Future of Modern Android Development.pptx
The Future of Modern Android Development.pptxGDSC2
 
WebAuthn - The End of the Password As We Know It?
WebAuthn - The End of the Password As We Know It?WebAuthn - The End of the Password As We Know It?
WebAuthn - The End of the Password As We Know It?Thomas Konrad
 

Similar to Bringing OpenAPI to DevOps: How OpenAPI Specification Enables Interactive Documentation, Code Generation, Automated Testing and More (20)

The rise of industry 4.0 makes your manufacturing smarter
The rise of industry 4.0 makes your manufacturing smarterThe rise of industry 4.0 makes your manufacturing smarter
The rise of industry 4.0 makes your manufacturing smarter
 
micro:bit IET - Nov 2019
micro:bit IET - Nov 2019micro:bit IET - Nov 2019
micro:bit IET - Nov 2019
 
How ChatGPT led OpenAPI's Recent Spike in Popularity
How ChatGPT led OpenAPI's Recent Spike in PopularityHow ChatGPT led OpenAPI's Recent Spike in Popularity
How ChatGPT led OpenAPI's Recent Spike in Popularity
 
It's 2019 & I'm still using Python 2! Should I be worried?
It's 2019 & I'm still using Python 2! Should I be worried?It's 2019 & I'm still using Python 2! Should I be worried?
It's 2019 & I'm still using Python 2! Should I be worried?
 
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
 
Technical communication futurist by Scott Abel
Technical communication futurist by Scott AbelTechnical communication futurist by Scott Abel
Technical communication futurist by Scott Abel
 
Smartphone Reporting Done Smarter
Smartphone Reporting Done SmarterSmartphone Reporting Done Smarter
Smartphone Reporting Done Smarter
 
Michael Collins_TravelMedia.ie_SATW Sept 2022_Bogota Colombia_presentation.pptx
Michael Collins_TravelMedia.ie_SATW Sept 2022_Bogota Colombia_presentation.pptxMichael Collins_TravelMedia.ie_SATW Sept 2022_Bogota Colombia_presentation.pptx
Michael Collins_TravelMedia.ie_SATW Sept 2022_Bogota Colombia_presentation.pptx
 
shanghai
shanghaishanghai
shanghai
 
DPS2019 data scientist in the real estate industry
DPS2019 data scientist in the real estate industry DPS2019 data scientist in the real estate industry
DPS2019 data scientist in the real estate industry
 
Intro to Hybrid Mobile Development && Ionic
Intro to Hybrid Mobile Development && IonicIntro to Hybrid Mobile Development && Ionic
Intro to Hybrid Mobile Development && Ionic
 
Intro to Hybrid Mobile Development && Ionic
Intro to Hybrid Mobile Development && IonicIntro to Hybrid Mobile Development && Ionic
Intro to Hybrid Mobile Development && Ionic
 
The rise of industry 4.0 makes your manufacturing smarter by joseph wei oct2019
The rise of industry 4.0 makes your manufacturing smarter by joseph wei oct2019The rise of industry 4.0 makes your manufacturing smarter by joseph wei oct2019
The rise of industry 4.0 makes your manufacturing smarter by joseph wei oct2019
 
Factoring E-A-T Into Your 2020 SEO Strategy | Lily Ray
Factoring E-A-T Into Your 2020 SEO Strategy | Lily RayFactoring E-A-T Into Your 2020 SEO Strategy | Lily Ray
Factoring E-A-T Into Your 2020 SEO Strategy | Lily Ray
 
OriginStamp: Trusted Time Stamping via the Bitcoin Blockchain
OriginStamp: Trusted Time Stamping via the Bitcoin BlockchainOriginStamp: Trusted Time Stamping via the Bitcoin Blockchain
OriginStamp: Trusted Time Stamping via the Bitcoin Blockchain
 
APIdays Paris 2019 - How we addressed our 100% API Strategy in a major worldw...
APIdays Paris 2019 - How we addressed our 100% API Strategy in a major worldw...APIdays Paris 2019 - How we addressed our 100% API Strategy in a major worldw...
APIdays Paris 2019 - How we addressed our 100% API Strategy in a major worldw...
 
[WSO2 Integration Summit London 2019] Transforming Your Business through APIs
[WSO2 Integration Summit London 2019] Transforming Your Business through APIs[WSO2 Integration Summit London 2019] Transforming Your Business through APIs
[WSO2 Integration Summit London 2019] Transforming Your Business through APIs
 
Computer Vision e Machine Learning Applicazioni e Sviluppi
Computer Vision e Machine Learning Applicazioni e SviluppiComputer Vision e Machine Learning Applicazioni e Sviluppi
Computer Vision e Machine Learning Applicazioni e Sviluppi
 
The Future of Modern Android Development.pptx
The Future of Modern Android Development.pptxThe Future of Modern Android Development.pptx
The Future of Modern Android Development.pptx
 
WebAuthn - The End of the Password As We Know It?
WebAuthn - The End of the Password As We Know It?WebAuthn - The End of the Password As We Know It?
WebAuthn - The End of the Password As We Know It?
 

More from Nordic APIs

How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...Nordic APIs
 
The Art of API Design, by David Biesack at Apiture
The Art of API Design, by David Biesack at ApitureThe Art of API Design, by David Biesack at Apiture
The Art of API Design, by David Biesack at ApitureNordic APIs
 
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by Dav...
ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs? by Dav...ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs? by Dav...
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by Dav...Nordic APIs
 
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...Nordic APIs
 
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...Nordic APIs
 
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNLAPI Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNLNordic APIs
 
API Discovery from Crawl to Run - Rob Dickinson, Graylog
API Discovery from Crawl to Run - Rob Dickinson, GraylogAPI Discovery from Crawl to Run - Rob Dickinson, Graylog
API Discovery from Crawl to Run - Rob Dickinson, GraylogNordic APIs
 
Productizing and Monetizing APIs - Derric Gilling, Moseif
Productizing and Monetizing APIs - Derric Gilling, MoseifProductizing and Monetizing APIs - Derric Gilling, Moseif
Productizing and Monetizing APIs - Derric Gilling, MoseifNordic APIs
 
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, SipiosSecurely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, SipiosNordic APIs
 
Security of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.ioSecurity of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.ioNordic APIs
 
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...Nordic APIs
 
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...Nordic APIs
 
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
Reigniting the API Description Wars with TypeSpec and the Next Generation of...Reigniting the API Description Wars with TypeSpec and the Next Generation of...
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...Nordic APIs
 
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyEstablish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyNordic APIs
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Nordic APIs
 
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIsGoing Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIsNordic APIs
 
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...Nordic APIs
 
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, GartnerGenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, GartnerNordic APIs
 
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...Nordic APIs
 
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...Nordic APIs
 

More from Nordic APIs (20)

How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
 
The Art of API Design, by David Biesack at Apiture
The Art of API Design, by David Biesack at ApitureThe Art of API Design, by David Biesack at Apiture
The Art of API Design, by David Biesack at Apiture
 
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by Dav...
ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs? by Dav...ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs? by Dav...
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by Dav...
 
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
 
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
 
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNLAPI Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
 
API Discovery from Crawl to Run - Rob Dickinson, Graylog
API Discovery from Crawl to Run - Rob Dickinson, GraylogAPI Discovery from Crawl to Run - Rob Dickinson, Graylog
API Discovery from Crawl to Run - Rob Dickinson, Graylog
 
Productizing and Monetizing APIs - Derric Gilling, Moseif
Productizing and Monetizing APIs - Derric Gilling, MoseifProductizing and Monetizing APIs - Derric Gilling, Moseif
Productizing and Monetizing APIs - Derric Gilling, Moseif
 
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, SipiosSecurely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
 
Security of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.ioSecurity of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.io
 
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
 
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
 
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
Reigniting the API Description Wars with TypeSpec and the Next Generation of...Reigniting the API Description Wars with TypeSpec and the Next Generation of...
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
 
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyEstablish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
 
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIsGoing Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
 
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
 
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, GartnerGenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
 
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
 
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Bringing OpenAPI to DevOps: How OpenAPI Specification Enables Interactive Documentation, Code Generation, Automated Testing and More

  • 1. Bringing OpenAPI to DevOps Vincenzo Chianese — @d3dvincent
  • 2. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda
  • 3. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda • Where are we at with OpenAPI
  • 4. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda • Where are we at with OpenAPI • Current usages and tools
  • 5. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda • Where are we at with OpenAPI • Current usages and tools • What’s up with OpenAPI at runtime
  • 6. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda • Where are we at with OpenAPI • Current usages and tools • What’s up with OpenAPI at runtime • Use cases
  • 7. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda • Where are we at with OpenAPI • Current usages and tools • What’s up with OpenAPI at runtime • Use cases • API Gateway support
  • 8. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda • Where are we at with OpenAPI • Current usages and tools • What’s up with OpenAPI at runtime • Use cases • API Gateway support • What can we do better
  • 9. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda • Where are we at with OpenAPI • Current usages and tools • What’s up with OpenAPI at runtime • Use cases • API Gateway support • What can we do better • Live demo
  • 10. StoplightMonday, May 20, 2019 @d3dvincent 2 Agenda • Where are we at with OpenAPI • Current usages and tools • What’s up with OpenAPI at runtime • Use cases • API Gateway support • What can we do better • Live demo • Takeaways and questions
  • 11. StoplightMonday, May 20, 2019 @d3dvincent 3 Vincenzo Chianese
  • 12. StoplightMonday, May 20, 2019 @d3dvincent 3 Vincenzo Chianese
  • 13. StoplightMonday, May 20, 2019 @d3dvincent 3 Vincenzo Chianese Software Developer @ Stoplight
  • 14. StoplightMonday, May 20, 2019 @d3dvincent 3 Vincenzo Chianese Software Developer @ Stoplight Maintainer @ Express Gateway
  • 15. StoplightMonday, May 20, 2019 @d3dvincent 3 Vincenzo Chianese Software Developer @ Stoplight Maintainer @ Express Gateway Auth0 Ambassador
  • 16. StoplightMonday, May 20, 2019 @d3dvincent 3 Vincenzo Chianese Software Developer @ Stoplight Maintainer @ Express Gateway Auth0 Ambassador Google Developer Expert
  • 17. StoplightMonday, May 20, 2019 @d3dvincent 3 Vincenzo Chianese • vincenzo@express-gateway.io • vincenzo@stoplight.io • https://vncz.js.org/ • https://twitter.com/D3DVincent • https://github.com/XVincentX Software Developer @ Stoplight Maintainer @ Express Gateway Auth0 Ambassador Google Developer Expert
  • 18. StoplightMonday, May 20, 2019 @d3dvincent OpenAPI 4
  • 19. StoplightMonday, May 20, 2019 @d3dvincent OpenAPI 4 The OpenAPI Specification (OAS) defines a standard, programming language-agnostic interface description for REST APIs, which allows both humans and computers to discover and understand the capabilities of a service
  • 20. StoplightMonday, May 20, 2019 @d3dvincent OpenAPI 4 The OpenAPI Specification (OAS) defines a standard, programming language-agnostic interface description for REST APIs, which allows both humans and computers to discover and understand the capabilities of a service Use cases for machine-readable API definition documents include, but are not limited to: interactive documentation; code generation for documentation, clients, and servers; and automation of test cases.
  • 21. StoplightMonday, May 20, 2019 @d3dvincent OpenAPI 4 The OpenAPI Specification (OAS) defines a standard, programming language-agnostic interface description for REST APIs, which allows both humans and computers to discover and understand the capabilities of a service Use cases for machine-readable API definition documents include, but are not limited to: interactive documentation; code generation for documentation, clients, and servers; and automation of test cases. — OpenAPI Official Repository
  • 22. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation
  • 23. StoplightMonday, May 20, 2019 @d3dvincent { "swagger": "2.0", "info": { "description": "This is a sample server Petstore server.", "version": "1.0.0", "title": "Swagger Petstore", "termsOfService": "http://swagger.io/terms/", "contact": { "email": "apiteam@swagger.io" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } }, 5 Interactive documentation
  • 24. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation
  • 25. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation ToC
  • 26. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation ToC Request/ Response description
  • 27. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation ToC Request/ Response description Online client
  • 28. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation ToC Request/ Response description Online client Linting
  • 29. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation ToC Request/ Response description Online client Linting Search Features
  • 30. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation ToC Request/ Response description Online client Linting Search Features Client generation
  • 31. StoplightMonday, May 20, 2019 @d3dvincent 5 Interactive documentation ToC Request/ Response description Online client Linting Search Features Client generation Content/ Type
  • 32. StoplightMonday, May 20, 2019 @d3dvincent 6 Code generation { "swagger": "2.0", "info": { "description": "This is a sample server Petstore server.", "version": "1.0.0", "title": "Swagger Petstore", "termsOfService": "http://swagger.io/terms/", "contact": { "email": "apiteam@swagger.io" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } },
  • 33. StoplightMonday, May 20, 2019 @d3dvincent 6 Code generation const client = require(‘petstore-client') (process.env.PETSTORE_API_KEY); client.pets.create({ name: 'Doogy', age: 2 }).then(() => { console.log("Pet created correctly!"); }).catch(() => { console.error("Something went wrong") });
  • 34. StoplightMonday, May 20, 2019 @d3dvincent 6 Code generation const client = require(‘petstore-client') (process.env.PETSTORE_API_KEY); client.pets.create({ name: 'Doogy', age: 2 }).then(() => { console.log("Pet created correctly!"); }).catch(() => { console.error("Something went wrong") }); Base URL and authentication
  • 35. StoplightMonday, May 20, 2019 @d3dvincent 6 Code generation const client = require(‘petstore-client') (process.env.PETSTORE_API_KEY); client.pets.create({ name: 'Doogy', age: 2 }).then(() => { console.log("Pet created correctly!"); }).catch(() => { console.error("Something went wrong") }); Base URL and authentication URL mapping
  • 36. StoplightMonday, May 20, 2019 @d3dvincent 6 Code generation const client = require(‘petstore-client') (process.env.PETSTORE_API_KEY); client.pets.create({ name: 'Doogy', age: 2 }).then(() => { console.log("Pet created correctly!"); }).catch(() => { console.error("Something went wrong") }); Base URL and authentication URL mapping Parameters mapping
  • 37. StoplightMonday, May 20, 2019 @d3dvincent 6 Code generation const client = require(‘petstore-client') (process.env.PETSTORE_API_KEY); client.pets.create({ name: 'Doogy', age: 2 }).then(() => { console.log("Pet created correctly!"); }).catch(() => { console.error("Something went wrong") }); Base URL and authentication URL mapping Parameters mapping Success and error handlers
  • 38. StoplightMonday, May 20, 2019 @d3dvincent 7 Automation of test cases
  • 39. StoplightMonday, May 20, 2019 @d3dvincent 7 Automation of test cases Schema validation
  • 40. StoplightMonday, May 20, 2019 @d3dvincent 7 Automation of test cases Schema validation File coverage
  • 41. StoplightMonday, May 20, 2019 @d3dvincent 8 Linting
  • 42. StoplightMonday, May 20, 2019 @d3dvincent 8 Linting Best Practices
  • 43. StoplightMonday, May 20, 2019 @d3dvincent 8 Linting Best Practices Business rules
  • 44. StoplightMonday, May 20, 2019 @d3dvincent 8 Linting
  • 45. StoplightMonday, May 20, 2019 @d3dvincent 8 Linting • Open Source Linting Engine
  • 46. StoplightMonday, May 20, 2019 @d3dvincent 8 Linting • Open Source Linting Engine • Based on https://speccy.io
  • 47. StoplightMonday, May 20, 2019 @d3dvincent 8 Linting • Open Source Linting Engine • Based on https://speccy.io • https://github.com/stoplightio/spectral
  • 48. StoplightMonday, May 20, 2019 @d3dvincent 9 Mocking
  • 49. StoplightMonday, May 20, 2019 @d3dvincent 9 Mocking Try the API
  • 50. StoplightMonday, May 20, 2019 @d3dvincent 9 Mocking Try the API Stub the responses
  • 51. StoplightMonday, May 20, 2019 @d3dvincent 9 Mocking
  • 52. StoplightMonday, May 20, 2019 @d3dvincent 9 Mocking • Prism 3
  • 53. StoplightMonday, May 20, 2019 @d3dvincent 9 Mocking • Prism 3 • Open Source Mock Server
  • 54. StoplightMonday, May 20, 2019 @d3dvincent 9 Mocking • Prism 3 • Open Source Mock Server • Complete rewrite in TypeScript
  • 55. StoplightMonday, May 20, 2019 @d3dvincent 9 Mocking • Prism 3 • Open Source Mock Server • Complete rewrite in TypeScript • https://github.com/stoplightio/prism
  • 56. StoplightMonday, May 20, 2019 @d3dvincent 10 What about the runtime? 🤔
  • 57. StoplightMonday, May 20, 2019 @d3dvincent 11 OpenAPI in your runtime: today
  • 58. StoplightMonday, May 20, 2019 @d3dvincent 11 OpenAPI in your runtime: today • API Monitoring
  • 59. StoplightMonday, May 20, 2019 @d3dvincent 11 OpenAPI in your runtime: today • API Monitoring • API Usage Statistics
  • 60. StoplightMonday, May 20, 2019 @d3dvincent 11 OpenAPI in your runtime: today • API Monitoring • API Usage Statistics • API Analysis and feedback collection
  • 61. StoplightMonday, May 20, 2019 @d3dvincent 12 OpenAPI as a source for verification
  • 62. StoplightMonday, May 20, 2019 @d3dvincent 12 OpenAPI as a source for verification client.pets.list()
  • 63. StoplightMonday, May 20, 2019 @d3dvincent 12 OpenAPI as a source for verification client.pets.list() GET /api/pets
 HOST: petstore.com Accept: application/json
  • 64. StoplightMonday, May 20, 2019 @d3dvincent 12 OpenAPI as a source for verification client.pets.list() GET /api/pets
 HOST: petstore.com Accept: application/json • Most used endpoints
  • 65. StoplightMonday, May 20, 2019 @d3dvincent 12 OpenAPI as a source for verification client.pets.list() GET /api/pets
 HOST: petstore.com Accept: application/json • Most used endpoints • Most failing endpoints
  • 66. StoplightMonday, May 20, 2019 @d3dvincent 12 OpenAPI as a source for verification client.pets.list() GET /api/pets
 HOST: petstore.com Accept: application/json • Most used endpoints • Most failing endpoints • Most common scenarios
  • 67. StoplightMonday, May 20, 2019 @d3dvincent 13 …what about ops? 🤔
  • 68. StoplightMonday, May 20, 2019 @d3dvincent 13 …what about ops? 🤔
  • 69. StoplightMonday, May 20, 2019 @d3dvincent 13 …what about ops? 🤔 • Safely rollout a new API Section
  • 70. StoplightMonday, May 20, 2019 @d3dvincent 13 …what about ops? 🤔 • Safely rollout a new API Section • Set an API Section as deprecated
  • 71. StoplightMonday, May 20, 2019 @d3dvincent 13 …what about ops? 🤔 • Safely rollout a new API Section • Set an API Section as deprecated • Changes in security requirements
  • 72. StoplightMonday, May 20, 2019 @d3dvincent 13 …what about ops? 🤔 • Safely rollout a new API Section • Set an API Section as deprecated • Changes in security requirements • Changes in validation rules
  • 73. StoplightMonday, May 20, 2019 @d3dvincent 13 …what about ops? 🤔 • Safely rollout a new API Section • Set an API Section as deprecated • Changes in security requirements • Changes in validation rules • Redirects
  • 74. StoplightMonday, May 20, 2019 @d3dvincent 13 …what about ops? • Safely rollout a new API Section • Set an API Section as deprecated • Changes in security requirements • Changes in validation rules • Redirects 😫
  • 75. StoplightMonday, May 20, 2019 @d3dvincent 14 API Gateway
  • 76. StoplightMonday, May 20, 2019 @d3dvincent 14 API Gateway • Limited configuration surface
  • 77. StoplightMonday, May 20, 2019 @d3dvincent 14 API Gateway • Limited configuration surface • Almost 1:1 match with OpenAPI description file
  • 78. StoplightMonday, May 20, 2019 @d3dvincent 14 API Gateway • Limited configuration surface • Almost 1:1 match with OpenAPI description file • (some) solutions can be declaratively configured
  • 79. StoplightMonday, May 20, 2019 @d3dvincent 15 AWS API Gateway
  • 80. StoplightMonday, May 20, 2019 @d3dvincent 15 AWS API Gateway • OpenAPI 2 support
  • 81. StoplightMonday, May 20, 2019 @d3dvincent 15 AWS API Gateway • OpenAPI 2 support • OpenAPI 3 support
  • 82. StoplightMonday, May 20, 2019 @d3dvincent 15 AWS API Gateway • OpenAPI 2 support • OpenAPI 3 support • Proprietary extensions
  • 83. StoplightMonday, May 20, 2019 @d3dvincent 15 AWS API Gateway • OpenAPI 2 support • OpenAPI 3 support • Proprietary extensions • Document Upload API
  • 84. StoplightMonday, May 20, 2019 @d3dvincent 15 AWS API Gateway • OpenAPI 2 support • OpenAPI 3 support • Proprietary extensions • Document Upload API • Merge feature
  • 85. StoplightMonday, May 20, 2019 @d3dvincent 16 Apigee Edge
  • 86. StoplightMonday, May 20, 2019 @d3dvincent 16 Apigee Edge • OpenAPI 2.0 support
  • 87. StoplightMonday, May 20, 2019 @d3dvincent 16 Apigee Edge • OpenAPI 2.0 support • OpenAPI 3.0 support
  • 88. StoplightMonday, May 20, 2019 @d3dvincent 16 Apigee Edge • OpenAPI 2.0 support • OpenAPI 3.0 support • No documented extensions
  • 89. StoplightMonday, May 20, 2019 @d3dvincent 16 Apigee Edge • OpenAPI 2.0 support • OpenAPI 3.0 support • No documented extensions • Project Upload API
  • 90. StoplightMonday, May 20, 2019 @d3dvincent 17 Microsoft API Management
  • 91. StoplightMonday, May 20, 2019 @d3dvincent 17 Microsoft API Management • OpenAPI 2.0 support
  • 92. StoplightMonday, May 20, 2019 @d3dvincent 17 Microsoft API Management • OpenAPI 2.0 support • OpenAPI 3.0 support
  • 93. StoplightMonday, May 20, 2019 @d3dvincent 17 Microsoft API Management • OpenAPI 2.0 support • OpenAPI 3.0 support • Few, not super important, extensions
  • 94. StoplightMonday, May 20, 2019 @d3dvincent 17 Microsoft API Management • OpenAPI 2.0 support • OpenAPI 3.0 support • Few, not super important, extensions • Project Upload API
  • 95. StoplightMonday, May 20, 2019 @d3dvincent 18 Open Source Solutions
  • 96. StoplightMonday, May 20, 2019 @d3dvincent 18 Open Source Solutions The situation is not that cool
  • 97. StoplightMonday, May 20, 2019 @d3dvincent 18 Open Source Solutions The situation is not that cool Express Gateway
  • 98. StoplightMonday, May 20, 2019 @d3dvincent 19 Express Gateway in a nutshell
  • 99. StoplightMonday, May 20, 2019 @d3dvincent 19 Express Gateway in a nutshell Express Gateway
  • 100. StoplightMonday, May 20, 2019 @d3dvincent 19 Express Gateway in a nutshell Express Gateway Trusted by several companies
  • 101. StoplightMonday, May 20, 2019 @d3dvincent 19 Express Gateway in a nutshell Express Gateway Trusted by several companies
  • 102. StoplightMonday, May 20, 2019 @d3dvincent 20 Talk is cheap; show me the code
  • 103. StoplightMonday, May 20, 2019 @d3dvincent 21 Takeaways and open questions
  • 104. StoplightMonday, May 20, 2019 @d3dvincent 21 Takeaways and open questions • OpenAPI aren’t a first class citizens for Open Source API Gateways
  • 105. StoplightMonday, May 20, 2019 @d3dvincent 21 Takeaways and open questions • OpenAPI aren’t a first class citizens for Open Source API Gateways • They just do not care of its support
  • 106. StoplightMonday, May 20, 2019 @d3dvincent 21 Takeaways and open questions • OpenAPI aren’t a first class citizens for Open Source API Gateways • They just do not care of its support • Not the right tool for the job
  • 107. StoplightMonday, May 20, 2019 @d3dvincent 21 Takeaways and open questions • OpenAPI aren’t a first class citizens for Open Source API Gateways • They just do not care of its support • Not the right tool for the job • OpenAPI documents alone aren’t enough to describe all the aspects of an API
  • 108. StoplightMonday, May 20, 2019 @d3dvincent 21 Takeaways and open questions • OpenAPI aren’t a first class citizens for Open Source API Gateways • They just do not care of its support • Not the right tool for the job • OpenAPI documents alone aren’t enough to describe all the aspects of an API • OpenAPI specifications need to be expanded
  • 109. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen)
  • 110. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen) • Use an API Gateway
  • 111. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen) • Use an API Gateway • Put as much as you can on it (security, rate limiting, payload validation)
  • 112. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen) • Use an API Gateway • Put as much as you can on it (security, rate limiting, payload validation) • You do not need micro services to use an API Gateway
  • 113. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen) • Use an API Gateway • Put as much as you can on it (security, rate limiting, payload validation) • You do not need micro services to use an API Gateway • Make sure what exposes matches what’s declared in the OpenAPI spec file
  • 114. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen) • Use an API Gateway • Put as much as you can on it (security, rate limiting, payload validation) • You do not need micro services to use an API Gateway • Make sure what exposes matches what’s declared in the OpenAPI spec file • Prefer a solution that is declarative
  • 115. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen) • Use an API Gateway • Put as much as you can on it (security, rate limiting, payload validation) • You do not need micro services to use an API Gateway • Make sure what exposes matches what’s declared in the OpenAPI spec file • Prefer a solution that is declarative • It’s going to be easier to write automation scripts
  • 116. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen) • Use an API Gateway • Put as much as you can on it (security, rate limiting, payload validation) • You do not need micro services to use an API Gateway • Make sure what exposes matches what’s declared in the OpenAPI spec file • Prefer a solution that is declarative • It’s going to be easier to write automation scripts • Refrain from using custom extension
  • 117. StoplightMonday, May 20, 2019 @d3dvincent 22 The rules (to make it happen) • Use an API Gateway • Put as much as you can on it (security, rate limiting, payload validation) • You do not need micro services to use an API Gateway • Make sure what exposes matches what’s declared in the OpenAPI spec file • Prefer a solution that is declarative • It’s going to be easier to write automation scripts • Refrain from using custom extension • It will complicate the things the day these automations will be the standard for all the solutions
  • 118. Thank you! • vincenzo@express-gateway.io • vincenzo@stoplight.io • https://vncz.js.org/ • https://twitter.com/D3DVincent • https://github.com/XVincentX