SlideShare a Scribd company logo
1 of 26
Download to read offline
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

What's hot (20)

Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first class
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
 
Mulesoft Raml APIs
Mulesoft Raml APIsMulesoft Raml APIs
Mulesoft Raml APIs
 
Rest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookRest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbook
 
Operational API design anti-patterns (Jason Harmon)
Operational API design anti-patterns (Jason Harmon)Operational API design anti-patterns (Jason Harmon)
Operational API design anti-patterns (Jason Harmon)
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...
 
Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSL
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPI
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
 
Continuous API Strategies for Integrated Platforms
 Continuous API Strategies for Integrated Platforms Continuous API Strategies for Integrated Platforms
Continuous API Strategies for Integrated Platforms
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1
 
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflixapidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
 
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
 
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
 
Swagger 2.0 and Model-driven APIs
Swagger 2.0 and Model-driven APIsSwagger 2.0 and Model-driven APIs
Swagger 2.0 and Model-driven APIs
 
Six Steps To Build A Successful API
Six Steps To Build A Successful APISix Steps To Build A Successful API
Six Steps To Build A Successful API
 
Ultimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation SolutionsUltimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation Solutions
 
API SDK Development – Lessons Learned
API SDK Development – Lessons LearnedAPI SDK Development – Lessons Learned
API SDK Development – Lessons Learned
 
14 API Directories
14 API Directories14 API Directories
14 API Directories
 

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

Build Android App using GCE & GAE
Build Android App using GCE & GAEBuild Android App using GCE & GAE
Build Android App using GCE & GAE
Love Sharma
 

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

Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to present
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product Developers
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
 
Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPCBuild Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPC
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3
 
Build Android App using GCE & GAE
Build Android App using GCE & GAEBuild Android App using GCE & GAE
Build Android App using GCE & GAE
 
Angular
AngularAngular
Angular
 
Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes Toolbox
 
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
 
What's new in Kubernetes
What's new in KubernetesWhat's new in Kubernetes
What's new in Kubernetes
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
 
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
 
Automate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsAutomate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOps
 
Introduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API DevelopmentIntroduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API Development
 
Building a scalable API with Grails
Building a scalable API with GrailsBuilding a scalable API with Grails
Building a scalable API with Grails
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
 

Recently uploaded

一比一原版加利福尼亚大学尔湾分校毕业证成绩单如何办理
一比一原版加利福尼亚大学尔湾分校毕业证成绩单如何办理一比一原版加利福尼亚大学尔湾分校毕业证成绩单如何办理
一比一原版加利福尼亚大学尔湾分校毕业证成绩单如何办理
pyhepag
 
Toko Jual Viagra Asli Di Malang 081229400522 COD Obat Kuat Viagra Malang
Toko Jual Viagra Asli Di Malang 081229400522 COD Obat Kuat Viagra MalangToko Jual Viagra Asli Di Malang 081229400522 COD Obat Kuat Viagra Malang
Toko Jual Viagra Asli Di Malang 081229400522 COD Obat Kuat Viagra Malang
adet6151
 
Toko Jual Viagra Asli Di Salatiga 081229400522 Obat Kuat Viagra
Toko Jual Viagra Asli Di Salatiga 081229400522 Obat Kuat ViagraToko Jual Viagra Asli Di Salatiga 081229400522 Obat Kuat Viagra
Toko Jual Viagra Asli Di Salatiga 081229400522 Obat Kuat Viagra
adet6151
 
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
ppy8zfkfm
 
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Valters Lauzums
 
如何办理新加坡国立大学毕业证(NUS毕业证)学位证成绩单原版一比一
如何办理新加坡国立大学毕业证(NUS毕业证)学位证成绩单原版一比一如何办理新加坡国立大学毕业证(NUS毕业证)学位证成绩单原版一比一
如何办理新加坡国立大学毕业证(NUS毕业证)学位证成绩单原版一比一
hwhqz6r1y
 
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotecAbortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Exploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptxExploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptx
DilipVasan
 
如何办理澳洲悉尼大学毕业证(USYD毕业证书)学位证书成绩单原版一比一
如何办理澳洲悉尼大学毕业证(USYD毕业证书)学位证书成绩单原版一比一如何办理澳洲悉尼大学毕业证(USYD毕业证书)学位证书成绩单原版一比一
如何办理澳洲悉尼大学毕业证(USYD毕业证书)学位证书成绩单原版一比一
w7jl3eyno
 
如何办理滑铁卢大学毕业证(Waterloo毕业证)成绩单本科学位证原版一比一
如何办理滑铁卢大学毕业证(Waterloo毕业证)成绩单本科学位证原版一比一如何办理滑铁卢大学毕业证(Waterloo毕业证)成绩单本科学位证原版一比一
如何办理滑铁卢大学毕业证(Waterloo毕业证)成绩单本科学位证原版一比一
0uyfyq0q4
 

Recently uploaded (20)

The Significance of Transliteration Enhancing
The Significance of Transliteration EnhancingThe Significance of Transliteration Enhancing
The Significance of Transliteration Enhancing
 
一比一原版加利福尼亚大学尔湾分校毕业证成绩单如何办理
一比一原版加利福尼亚大学尔湾分校毕业证成绩单如何办理一比一原版加利福尼亚大学尔湾分校毕业证成绩单如何办理
一比一原版加利福尼亚大学尔湾分校毕业证成绩单如何办理
 
Artificial_General_Intelligence__storm_gen_article.pdf
Artificial_General_Intelligence__storm_gen_article.pdfArtificial_General_Intelligence__storm_gen_article.pdf
Artificial_General_Intelligence__storm_gen_article.pdf
 
Toko Jual Viagra Asli Di Malang 081229400522 COD Obat Kuat Viagra Malang
Toko Jual Viagra Asli Di Malang 081229400522 COD Obat Kuat Viagra MalangToko Jual Viagra Asli Di Malang 081229400522 COD Obat Kuat Viagra Malang
Toko Jual Viagra Asli Di Malang 081229400522 COD Obat Kuat Viagra Malang
 
Atlantic Grupa Case Study (Mintec Data AI)
Atlantic Grupa Case Study (Mintec Data AI)Atlantic Grupa Case Study (Mintec Data AI)
Atlantic Grupa Case Study (Mintec Data AI)
 
How to Transform Clinical Trial Management with Advanced Data Analytics
How to Transform Clinical Trial Management with Advanced Data AnalyticsHow to Transform Clinical Trial Management with Advanced Data Analytics
How to Transform Clinical Trial Management with Advanced Data Analytics
 
2024 Q1 Tableau User Group Leader Quarterly Call
2024 Q1 Tableau User Group Leader Quarterly Call2024 Q1 Tableau User Group Leader Quarterly Call
2024 Q1 Tableau User Group Leader Quarterly Call
 
Toko Jual Viagra Asli Di Salatiga 081229400522 Obat Kuat Viagra
Toko Jual Viagra Asli Di Salatiga 081229400522 Obat Kuat ViagraToko Jual Viagra Asli Di Salatiga 081229400522 Obat Kuat Viagra
Toko Jual Viagra Asli Di Salatiga 081229400522 Obat Kuat Viagra
 
AI Imagen for data-storytelling Infographics.pdf
AI Imagen for data-storytelling Infographics.pdfAI Imagen for data-storytelling Infographics.pdf
AI Imagen for data-storytelling Infographics.pdf
 
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
 
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
 
如何办理新加坡国立大学毕业证(NUS毕业证)学位证成绩单原版一比一
如何办理新加坡国立大学毕业证(NUS毕业证)学位证成绩单原版一比一如何办理新加坡国立大学毕业证(NUS毕业证)学位证成绩单原版一比一
如何办理新加坡国立大学毕业证(NUS毕业证)学位证成绩单原版一比一
 
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotecAbortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
 
How I opened a fake bank account and didn't go to prison
How I opened a fake bank account and didn't go to prisonHow I opened a fake bank account and didn't go to prison
How I opened a fake bank account and didn't go to prison
 
Data Visualization Exploring and Explaining with Data 1st Edition by Camm sol...
Data Visualization Exploring and Explaining with Data 1st Edition by Camm sol...Data Visualization Exploring and Explaining with Data 1st Edition by Camm sol...
Data Visualization Exploring and Explaining with Data 1st Edition by Camm sol...
 
NOAM AAUG Adobe Summit 2024: Summit Slam Dunks
NOAM AAUG Adobe Summit 2024: Summit Slam DunksNOAM AAUG Adobe Summit 2024: Summit Slam Dunks
NOAM AAUG Adobe Summit 2024: Summit Slam Dunks
 
Genuine love spell caster )! ,+27834335081) Ex lover back permanently in At...
Genuine love spell caster )! ,+27834335081)   Ex lover back permanently in At...Genuine love spell caster )! ,+27834335081)   Ex lover back permanently in At...
Genuine love spell caster )! ,+27834335081) Ex lover back permanently in At...
 
Exploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptxExploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptx
 
如何办理澳洲悉尼大学毕业证(USYD毕业证书)学位证书成绩单原版一比一
如何办理澳洲悉尼大学毕业证(USYD毕业证书)学位证书成绩单原版一比一如何办理澳洲悉尼大学毕业证(USYD毕业证书)学位证书成绩单原版一比一
如何办理澳洲悉尼大学毕业证(USYD毕业证书)学位证书成绩单原版一比一
 
如何办理滑铁卢大学毕业证(Waterloo毕业证)成绩单本科学位证原版一比一
如何办理滑铁卢大学毕业证(Waterloo毕业证)成绩单本科学位证原版一比一如何办理滑铁卢大学毕业证(Waterloo毕业证)成绩单本科学位证原版一比一
如何办理滑铁卢大学毕业证(Waterloo毕业证)成绩单本科学位证原版一比一
 

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