Skip to content

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 - maintenance 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

apis-client-generator - active

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.

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