The number of services Google makes available via API has expanded rapidly. We currently list over 80 Google APIs. To deal with the responsibility of supporting that many APIs, the company has spent the last year moving many services to a new architecture. As part of that process, it created the Google APIs Discovery API, to help both internal and external developers make sense of what's available and how each service is accessed.
That's right, Google has an API for its APIs. Currently only 13 are supported, but we'd expect the company to continue expanding the list as it updates to the new infrastructure. In its announcement post, Google described the metadata available from its new API:
- A directory of supported APIs.
- A "Discovery document" for each of the supported APIs that includes:
- A list of API resource schemas based on JSON Schema.
- A list of API methods and available parameters for each method.
- A list of available OAuth 2.0 scopes.
Inline documentation of methods, parameters, and available parameter values.
The new API is a welcome move toward a future of machine-decipherable APIs. Internally Google uses its Discovery API to automatically generate client libraries, as well as to power its Google API explorer. The latter has now been open sourced as an example of something that can be built with the Discovery API.
There are other ways of describing APIs. For SOAP APIs, there are WSDL files that show methods of inputs. For REST there is WADL, but even its apparent simplicity has been too complex for some. At the very least, support for WADL has been minimal. It's unclear whether Google has created generic enough to work for other API providers. However, it's obviously something that Google saw the need for, at least internally.