SlideShare a Scribd company logo
Dan Ciruli (@danciruli)
Product Manager
OpenAPI @ Google
What we’re doing with the baddest spec around
01 API Descriptions at Google
Where have we been?
3
Our own format...
While Tony Tam was creating
Swagger...
In 2010, Google APIs team launched
infrastructure based on the Discovery
Format -- a JSON format
Google Cloud Platform 4
Why?
Necessity No standard
5
Discovery Document
A substantial amount of infrastructure was
written based on it:
Some visible
● Client library generation (10 languages)
● APIs Explorer
● Discovery service
● Documentation generation
Some not visible
● Proxy (translates JSON over HTTP to proto
over stubby), capable of X million requests
per second
Google Cloud Platform 6
What went well...
● Over 150 public APIs
● Hundreds of thousands of developers
● Many billions of API calls...every day.
What didn’t go so well...
● Didn’t work with the open source community
Post Mortem
7
Our own format (cont’d)...
In 2015, in response to a need for
lower latency, more efficient data,
and HTTP/2 features like
bi-directional streaming, we
introduced gRPC.
But...all done in open source this
time!
02 Why did Google join OAI?
History and Status
Google Cloud Platform 9
Open = better
10
Toolchains & APIs matter
Photo credit: Modnar
03 OAS at Google
What’s happening now and where are we going?
12
Kubernetes
Kubernetes is an open source container
management system, initially released
in 2014.
Kubernetes.io publishes all APIs in
Swagger (currently 1.2, will upgrade to
publish v2.0 as of kubernetes 1.5).
Kubernetes server publishes Swagger
specs and ships with Swagger UI
Google Cloud Platform 13
gRPC APIs are serving Open API specs
One of the features of our new API
infrastructure is serving multiple
description formats...including OpenAPI
specs.
https://cloudfunctions.googleapis.com/$discovery/swagger2?version=v1
Google Cloud Platform 14
Google API Compiler
Open source compiler that takes OAS
files (or .proto + YAML) and generates
Google API Service Configurations
Service Config is used by various
downstream systems (client library
generation, documentation gen, etc).
Open sourced here, more tools to
come.
Google Cloud Platform 15
Cloud Endpoints
● API Management
● Server-local proxy
● All configuration happens through
Open API spec
Google Cloud Platform 16
Dashboards and UI
Configuration (access,
auth, etc) enforced at
runtime
Documentation
generation and API
Explorer delivered
via two toolchains
(see next slide)
NGINX-based proxy built-in to
App Engine,a available in a
container in a GKE pod or GCE.
Cloud Endpoints
Google Cloud Platform 17
Why server-local proxy?
Extremely thin
Eliminates network hop
Scales with your app
<1 ms latency
Google Cloud Platform 18
JSON-HTTP/1.1
Use Open API specs
to manage RESTful
APIs written in any
language and with
any framework.
proto-HTTP/2
Use gRPC to build
highly efficient
HTTP/2-based APIs
Cloud Endpoints: Choose your protocol
Google Cloud Platform 19
$ ls
package.json high-score.js
high-score-open-api.yaml app.yaml
$ gcloud app deploy
Recognized a [node] application
Recognized an [OpenAPI] API spec
Building app image… done
Deploying app image to
[http://high-score.stannrapis.com]… done
Now serving API at
[http://high-score.stannrapis.com]… done
Manage the API at
[console.developers.google.com]
$ curl high-score.stannrapis.com/v1/scores/0
{ “highscores”: [
{“score”:125239, “player”:“dwc”},
{“score”:124231, “player”:“jta”}
]
}
1. System detects an Open API
spec (yaml) with app
2. Does normal App Engine Flex
app package & deploy
3. Spins up additional proxy
container with GAE container,
applies control plane
4. API is served, listed in Cloud
Console user interface
04 What’s next?
What’s happening now and where are we going?
Google Cloud Platform 21
Google Cloud Platform 22
API
Google Cloud Platform 23
APIs are...big at Google
Open Source
● Both Apigee and Google were
founding members of the Open
API Initiative
● We will undoubtedly continue to
work both with the spec and with
various open source projects
related to it
● Google Cloud is committed to
being the open cloud --
contributing to existing products,
open sourcing internal
technologies, creating new
projects
Google Cloud Platform 24
How do you represent a more RPC-style API in the
spec? How about proto? Could there be a canonical
representation of a gRPC API in Open API?
Can our experience with code gen be useful?
Can we represent the richness of the Discovery
Document in Open API?
Issues important to us
Thanks!
@danciruli
@googleapis
Build what’s next.
Confidential & ProprietaryGoogle Cloud Platform 26

More Related Content

What's hot (20)

PDF
Why your APIs should fly first class
LibbySchulze
 
PPT
A Tour of Swagger for APIs
Allen Dean
 
ODP
Mulesoft Raml APIs
akshay yeluru
 
PDF
Rest api best practices – comprehensive handbook
Katy Slemon
 
PPTX
Operational API design anti-patterns (Jason Harmon)
Nordic APIs
 
PDF
API Developer Experience: Why it Matters, and How Documenting Your API with S...
SmartBear
 
PDF
Build pipelines with TeamCity and Kotlin DSL
Anton Arhipov
 
PDF
Crystal clear service interfaces w/ Swagger/OpenAPI
Scott Triglia
 
PDF
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays
 
PPTX
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays
 
PDF
Continuous API Strategies for Integrated Platforms
Bill Doerrfeld
 
PPTX
Introducing OpenAPI Version 3.1
SmartBear
 
PDF
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays
 
PPTX
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays
 
PDF
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays
 
PPTX
Swagger 2.0 and Model-driven APIs
Apigee | Google Cloud
 
PPT
Six Steps To Build A Successful API
Chris Haddad
 
PDF
Ultimate Guide to 30+ API Documentation Solutions
Bill Doerrfeld
 
PDF
API SDK Development – Lessons Learned
Pronovix
 
PDF
14 API Directories
Bill Doerrfeld
 
Why your APIs should fly first class
LibbySchulze
 
A Tour of Swagger for APIs
Allen Dean
 
Mulesoft Raml APIs
akshay yeluru
 
Rest api best practices – comprehensive handbook
Katy Slemon
 
Operational API design anti-patterns (Jason Harmon)
Nordic APIs
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
SmartBear
 
Build pipelines with TeamCity and Kotlin DSL
Anton Arhipov
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Scott Triglia
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays
 
Continuous API Strategies for Integrated Platforms
Bill Doerrfeld
 
Introducing OpenAPI Version 3.1
SmartBear
 
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays
 
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays
 
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays
 
Swagger 2.0 and Model-driven APIs
Apigee | Google Cloud
 
Six Steps To Build A Successful API
Chris Haddad
 
Ultimate Guide to 30+ API Documentation Solutions
Bill Doerrfeld
 
API SDK Development – Lessons Learned
Pronovix
 
14 API Directories
Bill Doerrfeld
 

Similar to OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15) (20)

PPTX
SVQdotNET: Building APIs with OpenApi
Juan Luis Guerrero Minero
 
PDF
OpenAPI and gRPC Side by-Side
Tim Burks
 
PDF
LF_APIStrat17_OpenAPI and gRPC Side-by-Side
LF_APIStrat
 
PDF
Presentation at the 2016 Linux Foundation Collab Summit
Open API Initiative (OAI)
 
PDF
CASCON 2017 - OpenAPI v3
Arthur De Magalhaes
 
PDF
JHipster Conf 2018 : Connect your JHipster apps to the world of APIs with Ope...
chbornet
 
PDF
Building REST APIs using gRPC and Go
Alvaro Viebrantz
 
PDF
Scale a Swagger based Web API (Guillaume Laforge)
Nordic APIs
 
PPTX
Open API Specification - SiliconValley Code camp 2017 session @siddiqimuhammad
Muhammad Siddiqi
 
PDF
Enforcing API Design Rules for High Quality Code Generation
Tim Burks
 
PDF
Eran Stiller: API design in the modern era - architecture next 2020
CodeValue
 
PDF
API Design in the Modern Era - Architecture Next 2020
Eran Stiller
 
PPTX
The Swagger Format becomes the Open API Specification: Standardizing descript...
3scale
 
PPTX
Mcroservices with docker kubernetes, goang and grpc, overview
Faculty of Technical Sciences, University of Novi Sad
 
PDF
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Iván López Martín
 
PPTX
Microservices summit talk 1/31
Varun Talwar
 
PPTX
Delivering Developer Tools at Scale
Oracle Developers
 
PDF
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
PDF
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Ambassador Labs
 
PPTX
Scaling with swagger
Tony Tam
 
SVQdotNET: Building APIs with OpenApi
Juan Luis Guerrero Minero
 
OpenAPI and gRPC Side by-Side
Tim Burks
 
LF_APIStrat17_OpenAPI and gRPC Side-by-Side
LF_APIStrat
 
Presentation at the 2016 Linux Foundation Collab Summit
Open API Initiative (OAI)
 
CASCON 2017 - OpenAPI v3
Arthur De Magalhaes
 
JHipster Conf 2018 : Connect your JHipster apps to the world of APIs with Ope...
chbornet
 
Building REST APIs using gRPC and Go
Alvaro Viebrantz
 
Scale a Swagger based Web API (Guillaume Laforge)
Nordic APIs
 
Open API Specification - SiliconValley Code camp 2017 session @siddiqimuhammad
Muhammad Siddiqi
 
Enforcing API Design Rules for High Quality Code Generation
Tim Burks
 
Eran Stiller: API design in the modern era - architecture next 2020
CodeValue
 
API Design in the Modern Era - Architecture Next 2020
Eran Stiller
 
The Swagger Format becomes the Open API Specification: Standardizing descript...
3scale
 
Mcroservices with docker kubernetes, goang and grpc, overview
Faculty of Technical Sciences, University of Novi Sad
 
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Iván López Martín
 
Microservices summit talk 1/31
Varun Talwar
 
Delivering Developer Tools at Scale
Oracle Developers
 
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Ambassador Labs
 
Scaling with swagger
Tony Tam
 
Ad

Recently uploaded (20)

PPTX
Climate Action.pptx action plan for climate
justfortalabat
 
PDF
Merits and Demerits of DBMS over File System & 3-Tier Architecture in DBMS
MD RIZWAN MOLLA
 
PDF
How to Connect Your On-Premises Site to AWS Using Site-to-Site VPN.pdf
Tamanna
 
PDF
Early_Diabetes_Detection_using_Machine_L.pdf
maria879693
 
PPTX
apidays Helsinki & North 2025 - From Chaos to Clarity: Designing (AI-Ready) A...
apidays
 
PDF
apidays Helsinki & North 2025 - REST in Peace? Hunting the Dominant Design fo...
apidays
 
PPTX
Numbers of a nation: how we estimate population statistics | Accessible slides
Office for National Statistics
 
PDF
apidays Helsinki & North 2025 - How (not) to run a Graphql Stewardship Group,...
apidays
 
PPT
Data base management system Transactions.ppt
gandhamcharan2006
 
PPTX
GenAI-Introduction-to-Copilot-for-Bing-March-2025-FOR-HUB.pptx
cleydsonborges1
 
PDF
The European Business Wallet: Why It Matters and How It Powers the EUDI Ecosy...
Lal Chandran
 
PDF
AUDITABILITY & COMPLIANCE OF AI SYSTEMS IN HEALTHCARE
GAHI Youssef
 
PPTX
apidays Helsinki & North 2025 - APIs at Scale: Designing for Alignment, Trust...
apidays
 
PDF
Choosing the Right Database for Indexing.pdf
Tamanna
 
PPTX
AI Presentation Tool Pitch Deck Presentation.pptx
ShyamPanthavoor1
 
PDF
Web Scraping with Google Gemini 2.0 .pdf
Tamanna
 
PDF
Building Production-Ready AI Agents with LangGraph.pdf
Tamanna
 
PDF
Data Chunking Strategies for RAG in 2025.pdf
Tamanna
 
PDF
Context Engineering for AI Agents, approaches, memories.pdf
Tamanna
 
PDF
Copia de Strategic Roadmap Infographics by Slidesgo.pptx (1).pdf
ssuserd4c6911
 
Climate Action.pptx action plan for climate
justfortalabat
 
Merits and Demerits of DBMS over File System & 3-Tier Architecture in DBMS
MD RIZWAN MOLLA
 
How to Connect Your On-Premises Site to AWS Using Site-to-Site VPN.pdf
Tamanna
 
Early_Diabetes_Detection_using_Machine_L.pdf
maria879693
 
apidays Helsinki & North 2025 - From Chaos to Clarity: Designing (AI-Ready) A...
apidays
 
apidays Helsinki & North 2025 - REST in Peace? Hunting the Dominant Design fo...
apidays
 
Numbers of a nation: how we estimate population statistics | Accessible slides
Office for National Statistics
 
apidays Helsinki & North 2025 - How (not) to run a Graphql Stewardship Group,...
apidays
 
Data base management system Transactions.ppt
gandhamcharan2006
 
GenAI-Introduction-to-Copilot-for-Bing-March-2025-FOR-HUB.pptx
cleydsonborges1
 
The European Business Wallet: Why It Matters and How It Powers the EUDI Ecosy...
Lal Chandran
 
AUDITABILITY & COMPLIANCE OF AI SYSTEMS IN HEALTHCARE
GAHI Youssef
 
apidays Helsinki & North 2025 - APIs at Scale: Designing for Alignment, Trust...
apidays
 
Choosing the Right Database for Indexing.pdf
Tamanna
 
AI Presentation Tool Pitch Deck Presentation.pptx
ShyamPanthavoor1
 
Web Scraping with Google Gemini 2.0 .pdf
Tamanna
 
Building Production-Ready AI Agents with LangGraph.pdf
Tamanna
 
Data Chunking Strategies for RAG in 2025.pdf
Tamanna
 
Context Engineering for AI Agents, approaches, memories.pdf
Tamanna
 
Copia de Strategic Roadmap Infographics by Slidesgo.pptx (1).pdf
ssuserd4c6911
 
Ad

OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)

  • 1. Dan Ciruli (@danciruli) Product Manager OpenAPI @ Google What we’re doing with the baddest spec around
  • 2. 01 API Descriptions at Google Where have we been?
  • 3. 3 Our own format... While Tony Tam was creating Swagger... In 2010, Google APIs team launched infrastructure based on the Discovery Format -- a JSON format
  • 4. Google Cloud Platform 4 Why? Necessity No standard
  • 5. 5 Discovery Document A substantial amount of infrastructure was written based on it: Some visible ● Client library generation (10 languages) ● APIs Explorer ● Discovery service ● Documentation generation Some not visible ● Proxy (translates JSON over HTTP to proto over stubby), capable of X million requests per second
  • 6. Google Cloud Platform 6 What went well... ● Over 150 public APIs ● Hundreds of thousands of developers ● Many billions of API calls...every day. What didn’t go so well... ● Didn’t work with the open source community Post Mortem
  • 7. 7 Our own format (cont’d)... In 2015, in response to a need for lower latency, more efficient data, and HTTP/2 features like bi-directional streaming, we introduced gRPC. But...all done in open source this time!
  • 8. 02 Why did Google join OAI? History and Status
  • 9. Google Cloud Platform 9 Open = better
  • 10. 10 Toolchains & APIs matter Photo credit: Modnar
  • 11. 03 OAS at Google What’s happening now and where are we going?
  • 12. 12 Kubernetes Kubernetes is an open source container management system, initially released in 2014. Kubernetes.io publishes all APIs in Swagger (currently 1.2, will upgrade to publish v2.0 as of kubernetes 1.5). Kubernetes server publishes Swagger specs and ships with Swagger UI
  • 13. Google Cloud Platform 13 gRPC APIs are serving Open API specs One of the features of our new API infrastructure is serving multiple description formats...including OpenAPI specs. https://cloudfunctions.googleapis.com/$discovery/swagger2?version=v1
  • 14. Google Cloud Platform 14 Google API Compiler Open source compiler that takes OAS files (or .proto + YAML) and generates Google API Service Configurations Service Config is used by various downstream systems (client library generation, documentation gen, etc). Open sourced here, more tools to come.
  • 15. Google Cloud Platform 15 Cloud Endpoints ● API Management ● Server-local proxy ● All configuration happens through Open API spec
  • 16. Google Cloud Platform 16 Dashboards and UI Configuration (access, auth, etc) enforced at runtime Documentation generation and API Explorer delivered via two toolchains (see next slide) NGINX-based proxy built-in to App Engine,a available in a container in a GKE pod or GCE. Cloud Endpoints
  • 17. Google Cloud Platform 17 Why server-local proxy? Extremely thin Eliminates network hop Scales with your app <1 ms latency
  • 18. Google Cloud Platform 18 JSON-HTTP/1.1 Use Open API specs to manage RESTful APIs written in any language and with any framework. proto-HTTP/2 Use gRPC to build highly efficient HTTP/2-based APIs Cloud Endpoints: Choose your protocol
  • 19. Google Cloud Platform 19 $ ls package.json high-score.js high-score-open-api.yaml app.yaml $ gcloud app deploy Recognized a [node] application Recognized an [OpenAPI] API spec Building app image… done Deploying app image to [http://high-score.stannrapis.com]… done Now serving API at [http://high-score.stannrapis.com]… done Manage the API at [console.developers.google.com] $ curl high-score.stannrapis.com/v1/scores/0 { “highscores”: [ {“score”:125239, “player”:“dwc”}, {“score”:124231, “player”:“jta”} ] } 1. System detects an Open API spec (yaml) with app 2. Does normal App Engine Flex app package & deploy 3. Spins up additional proxy container with GAE container, applies control plane 4. API is served, listed in Cloud Console user interface
  • 20. 04 What’s next? What’s happening now and where are we going?
  • 23. Google Cloud Platform 23 APIs are...big at Google Open Source ● Both Apigee and Google were founding members of the Open API Initiative ● We will undoubtedly continue to work both with the spec and with various open source projects related to it ● Google Cloud is committed to being the open cloud -- contributing to existing products, open sourcing internal technologies, creating new projects
  • 24. Google Cloud Platform 24 How do you represent a more RPC-style API in the spec? How about proto? Could there be a canonical representation of a gRPC API in Open API? Can our experience with code gen be useful? Can we represent the richness of the Discovery Document in Open API? Issues important to us
  • 26. Build what’s next. Confidential & ProprietaryGoogle Cloud Platform 26