Overview
The google-api-*-client
projects are officially marked as maintenance mode
. They don't have a consistent code generation approach. Each binding appears to do something different. apis-client-generator
is used to generate REST bindings.
The new clients are google-cloud-*
. They are in the process of adopting the latest code generation tech googleapis/toolkit
which is gRPC based.
These handwritten packages are going to migrate to live on top of clients generated from the Google API Code Generator
https://github.com/GoogleCloudPlatform/google-cloud-go/issues/266#issuecomment-221083266
API client summary
Google API clients (google-api-*-client
)
- Low level
- Auto generated
- Made for JSON REST APIs
- Older project - maintence mode
Google APIs toolkit (googleapis/toolkit
)
- Low level
- Auto generated
- Made for gRPC APIs
- New project - actively developed
Google Cloud libraries (google-cloud-*
)
- High level
- Hand written
- Built on top of the low level clients
google-api-client - maintenance mode
- google-api-nodejs-client
- google-api-php-client
- google-api-python-client
- google-api-ruby-client
- google-api-go-client
- google-api-go-generator
- google-api-java-client
- google-api-javascript-client - not offically marked as maintence, however no new updates since May 2017.
- google-api-dotnet-client
- google-api-objectivec-client
- Deprecated. Replaced entirely by google-api-objectivec-client-for-rest
- google-api-cpp-client
apis-client-generator - active
- apis-client-generator
- Java, C++, C#, GWT, PHP, Dart
- Used to generate
google-api-java-client
- Recommended way to generate bindings for REST APIs
apitools - maintenance mode
- apitools
- Generates Python only. Used by gcloud CLI
- Writes protobuf files from API discovery
google-cloud - active
Actively developed. Google Cloud APIs only.
- google-cloud-ruby
- google-cloud-node
- google-cloud-python
- google-cloud-go
- google-cloud-java
- google-cloud-php
- google-cloud-dotnet
googleapis/toolkit - active
The latest code generation tech from Google.
Generating Java APIs with apis-client-generator
Install Google API client generator from source.
git clone https://github.com/google/apis-client-generator.git
pip install .
Generate the library manually:
generate_library \
--input=./testing_v1.json \
--language=java \
--output_dir=./testing
Alternatively, generate the library by running generate.sh