Proliferating OpenAPI
Tim Burks, Sunny Gupta
Google Inc.
Google Likes OpenAPI
Standard representations are good!
- They improve our internal processes.
- They help us publish our APIs to outside consumers.
- They help us support API publishers running on GCP.
OpenAPI is the community’s choice for standardizing API
representation.
10 billion(~1000 trillion per day!)
Google Likes APIs
- Thousands of internal APIs
- Hundreds of public APIs
- Vision
- Pubsub
- Translate
- Prediction
- We even have an API that describes our APIs!
How Google Builds APIs
Protocol Buffers
Service Configuration
Google API Service Configuration
- Open sourced at github.com/googleapis/googleapis.
- Described using protocol buffers.
- Representable with JSON/YAML/binary formats.
Google’s OpenAPI Challenge
Google wants to support API creators who use OpenAPI.
- on many different platforms
- with many different services (billing, quota, auth)
So.. rewrite every API tool to read OpenAPI?
Swagger Codegen’s Challenge
swagger-codegen is a monolithic tool generating at least:
- 20 API clients and
- a dozen server stubs
But...
- People want many more generators!
- People want to write code generators in their favorite languages.
- People want to tweak existing code generators.
Google API Compiler
Google
API Compiler
Client Code
Generators
Server Code
Generators
Endpoint
Proxy
Quota
Management
Access
Configuration
API
Browser
Verifies and
normalizes API
descriptions
google.api.service
.yaml.proto
Google
API Compiler
Client Code
Generators
Server Code
Generators
Endpoint
Proxy
Quota
Management
Access
Configuration
API
Browser
Open API
Specification
Verifies and
normalizes API
descriptions
google.api.service
.yaml.proto
JSON Schema
What next?
- Google API Compiler and google.api.service descriptions are open sourced.
- We are working to close gaps between OpenAPI and google.api.service.
- Google is actively integrating tools with OpenAPI using google.api.service.
- We would welcome additions and new projects built on google.api.service.
A world of easy-to-write API tools
Google
API CompilerOpen API
Specification
Google API Tools
Verifies and
normalizes API
descriptions
JSON Schema
google.api.service
...
...
...
...
...
...
timburks/service-generator

Proliferating OpenAPI at Google

  • 1.
    Proliferating OpenAPI Tim Burks,Sunny Gupta Google Inc.
  • 2.
    Google Likes OpenAPI Standardrepresentations are good! - They improve our internal processes. - They help us publish our APIs to outside consumers. - They help us support API publishers running on GCP. OpenAPI is the community’s choice for standardizing API representation.
  • 3.
  • 4.
    Google Likes APIs -Thousands of internal APIs - Hundreds of public APIs - Vision - Pubsub - Translate - Prediction - We even have an API that describes our APIs!
  • 7.
  • 8.
  • 11.
  • 14.
    Google API ServiceConfiguration - Open sourced at github.com/googleapis/googleapis. - Described using protocol buffers. - Representable with JSON/YAML/binary formats.
  • 15.
    Google’s OpenAPI Challenge Googlewants to support API creators who use OpenAPI. - on many different platforms - with many different services (billing, quota, auth) So.. rewrite every API tool to read OpenAPI?
  • 16.
    Swagger Codegen’s Challenge swagger-codegenis a monolithic tool generating at least: - 20 API clients and - a dozen server stubs But... - People want many more generators! - People want to write code generators in their favorite languages. - People want to tweak existing code generators.
  • 17.
  • 18.
    Google API Compiler Client Code Generators ServerCode Generators Endpoint Proxy Quota Management Access Configuration API Browser Verifies and normalizes API descriptions google.api.service .yaml.proto
  • 19.
    Google API Compiler Client Code Generators ServerCode Generators Endpoint Proxy Quota Management Access Configuration API Browser Open API Specification Verifies and normalizes API descriptions google.api.service .yaml.proto JSON Schema
  • 22.
    What next? - GoogleAPI Compiler and google.api.service descriptions are open sourced. - We are working to close gaps between OpenAPI and google.api.service. - Google is actively integrating tools with OpenAPI using google.api.service. - We would welcome additions and new projects built on google.api.service. A world of easy-to-write API tools Google API CompilerOpen API Specification Google API Tools Verifies and normalizes API descriptions JSON Schema google.api.service ... ... ... ... ... ... timburks/service-generator