The Google APIs Client Library for Java is a flexible, efficient, and powerful Java client library for accessing any HTTP-based API on the web, not just Google APIs.
—
Abstract base classes and request handling framework for building type-safe Google API clients with automatic JSON parsing and error handling.
import com.google.api.client.googleapis.services.AbstractGoogleClient;
import com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient;
import com.google.api.client.googleapis.services.AbstractGoogleClientRequest;
import com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest;
import com.google.api.client.googleapis.services.GoogleClientRequestInitializer;
import com.google.api.client.googleapis.services.CommonGoogleClientRequestInitializer;Thread-safe abstract base class for Google API clients.
public abstract class AbstractGoogleClient {
protected AbstractGoogleClient(Builder builder);
public final HttpRequestFactory getRequestFactory();
public final GoogleClientRequestInitializer getGoogleClientRequestInitializer();
public final String getRootUrl();
public final String getServicePath();
public final String getBaseUrl();
public final String getApplicationName();
public final ObjectParser getObjectParser();
public final boolean getSuppressPatternChecks();
public final boolean getSuppressRequiredParameterChecks();
public final String getUniverseDomain();
public void validateUniverseDomain() throws IOException;
public final BatchRequest batch();
public final BatchRequest batch(HttpRequestInitializer httpRequestInitializer);
protected void initialize(AbstractGoogleClientRequest<?> googleClientRequest) throws IOException;
public static abstract class Builder {
protected Builder(HttpTransport transport, String rootUrl, String servicePath,
ObjectParser objectParser, HttpRequestInitializer httpRequestInitializer);
public abstract AbstractGoogleClient build();
public final HttpTransport getTransport();
public final String getRootUrl();
public Builder setRootUrl(String rootUrl);
public final String getServicePath();
public Builder setServicePath(String servicePath);
public final GoogleClientRequestInitializer getGoogleClientRequestInitializer();
public Builder setGoogleClientRequestInitializer(GoogleClientRequestInitializer googleClientRequestInitializer);
public final HttpRequestInitializer getHttpRequestInitializer();
public Builder setHttpRequestInitializer(HttpRequestInitializer httpRequestInitializer);
public final String getApplicationName();
public Builder setApplicationName(String applicationName);
public final ObjectParser getObjectParser();
public final boolean getSuppressPatternChecks();
public Builder setSuppressPatternChecks(boolean suppressPatternChecks);
public final boolean getSuppressRequiredParameterChecks();
public Builder setSuppressRequiredParameterChecks(boolean suppressRequiredParameterChecks);
public final boolean getSuppressAllChecks();
public Builder setSuppressAllChecks(boolean suppressAllChecks);
public Builder setBatchPath(String batchPath);
public final String getUniverseDomain();
public Builder setUniverseDomain(String universeDomain);
}
}Thread-safe Google JSON client extending AbstractGoogleClient.
public abstract class AbstractGoogleJsonClient extends AbstractGoogleClient {
protected AbstractGoogleJsonClient(Builder builder);
public JsonObjectParser getObjectParser();
public final JsonFactory getJsonFactory();
public static abstract class Builder extends AbstractGoogleClient.Builder {
protected Builder(HttpTransport transport, JsonFactory jsonFactory, String rootUrl,
String servicePath, HttpRequestInitializer httpRequestInitializer, boolean legacyDataWrapper);
public abstract AbstractGoogleJsonClient build();
public final JsonObjectParser getObjectParser();
public final JsonFactory getJsonFactory();
public Builder setRootUrl(String rootUrl);
public Builder setServicePath(String servicePath);
public Builder setGoogleClientRequestInitializer(GoogleClientRequestInitializer googleClientRequestInitializer);
public Builder setHttpRequestInitializer(HttpRequestInitializer httpRequestInitializer);
public Builder setApplicationName(String applicationName);
public Builder setSuppressPatternChecks(boolean suppressPatternChecks);
public Builder setSuppressRequiredParameterChecks(boolean suppressRequiredParameterChecks);
public Builder setSuppressAllChecks(boolean suppressAllChecks);
public Builder setBatchPath(String batchPath);
public Builder setUniverseDomain(String universeDomain);
}
}Usage Example:
import com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient;
import com.google.api.client.json.gson.GsonFactory;
// Example custom client extending AbstractGoogleJsonClient
public class MyGoogleApiClient extends AbstractGoogleJsonClient {
public MyGoogleApiClient(Builder builder) {
super(builder);
}
public static final class Builder extends AbstractGoogleJsonClient.Builder {
public Builder(HttpTransport transport, JsonFactory jsonFactory,
HttpRequestInitializer httpRequestInitializer) {
super(transport, jsonFactory,
"https://myapi.googleapis.com/",
"myapi/v1/",
httpRequestInitializer,
false);
}
public MyGoogleApiClient build() {
return new MyGoogleApiClient(this);
}
}
}
// Usage
HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = GsonFactory.getDefaultInstance();
HttpRequestInitializer credential = // ... your credential
MyGoogleApiClient client = new MyGoogleApiClient.Builder(transport, jsonFactory, credential)
.setApplicationName("My Application")
.build();Abstract base class for Google API requests.
public abstract class AbstractGoogleClientRequest<T> extends GenericUrl {
protected AbstractGoogleClientRequest(AbstractGoogleClient abstractGoogleClient,
String requestMethod, String uriTemplate, Object content, Class<T> responseClass);
public final AbstractGoogleClient getAbstractGoogleClient();
public final String getRequestMethod();
public final String getUriTemplate();
public final Object getHttpContent();
public final Class<T> getResponseClass();
public final String getMediaUploadType();
protected AbstractGoogleClientRequest<T> setMediaUploadType(String mediaUploadType);
public HttpHeaders getRequestHeaders();
public AbstractGoogleClientRequest<T> setRequestHeaders(HttpHeaders headers);
public HttpHeaders getLastResponseHeaders();
public int getLastStatusCode();
public String getLastStatusMessage();
public final boolean getDisableGZipContent();
public AbstractGoogleClientRequest<T> setDisableGZipContent(boolean disableGZipContent);
public T execute() throws IOException;
public HttpResponse executeUnparsed() throws IOException;
public void executeAndDownloadTo(OutputStream outputStream) throws IOException;
public InputStream executeAsInputStream() throws IOException;
protected void newExceptionOnError(HttpResponse response) throws IOException;
public AbstractGoogleClientRequest<T> setAlt(String alt);
public AbstractGoogleClientRequest<T> setFields(String fields);
public AbstractGoogleClientRequest<T> setKey(String key);
public AbstractGoogleClientRequest<T> setOauthToken(String oauthToken);
public AbstractGoogleClientRequest<T> setPrettyPrint(Boolean prettyPrint);
public AbstractGoogleClientRequest<T> setQuotaUser(String quotaUser);
public AbstractGoogleClientRequest<T> setUserIp(String userIp);
}JSON-specific implementation of AbstractGoogleClientRequest.
public abstract class AbstractGoogleJsonClientRequest<T> extends AbstractGoogleClientRequest<T> {
protected AbstractGoogleJsonClientRequest(AbstractGoogleJsonClient abstractGoogleJsonClient,
String requestMethod, String uriTemplate, Object content, Class<T> responseClass);
public final AbstractGoogleJsonClient getAbstractGoogleJsonClient();
public AbstractGoogleJsonClientRequest<T> setAlt(String alt);
public AbstractGoogleJsonClientRequest<T> setFields(String fields);
public AbstractGoogleJsonClientRequest<T> setKey(String key);
public AbstractGoogleJsonClientRequest<T> setOauthToken(String oauthToken);
public AbstractGoogleJsonClientRequest<T> setPrettyPrint(Boolean prettyPrint);
public AbstractGoogleJsonClientRequest<T> setQuotaUser(String quotaUser);
public AbstractGoogleJsonClientRequest<T> setUserIp(String userIp);
public AbstractGoogleJsonClientRequest<T> setRequestHeaders(HttpHeaders headers);
public AbstractGoogleJsonClientRequest<T> setDisableGZipContent(boolean disableGZipContent);
}Usage Example:
// Example custom request class
public class MyApiRequest extends AbstractGoogleJsonClientRequest<MyResponse> {
protected MyApiRequest(MyGoogleApiClient client, String httpMethod,
String uriTemplate, Object content) {
super(client, httpMethod, uriTemplate, content, MyResponse.class);
}
// Custom parameter methods
public MyApiRequest setCustomParam(String value) {
return (MyApiRequest) set("customParam", value);
}
}
// Usage
MyApiRequest request = new MyApiRequest(client, "GET", "items/{itemId}", null)
.setCustomParam("value")
.setFields("id,name,description");
MyResponse response = request.execute();Interface for initializing Google API client requests.
public interface GoogleClientRequestInitializer {
void initialize(AbstractGoogleClientRequest<?> request) throws IOException;
}Common implementation of GoogleClientRequestInitializer.
public class CommonGoogleClientRequestInitializer implements GoogleClientRequestInitializer {
public CommonGoogleClientRequestInitializer();
public CommonGoogleClientRequestInitializer(String key);
public CommonGoogleClientRequestInitializer(String key, String userIp);
public void initialize(AbstractGoogleClientRequest<?> request);
public final String getKey();
public final String getUserIp();
}JSON-specific request initializer.
public class CommonGoogleJsonClientRequestInitializer extends CommonGoogleClientRequestInitializer {
public CommonGoogleJsonClientRequestInitializer();
public CommonGoogleJsonClientRequestInitializer(String key);
public CommonGoogleJsonClientRequestInitializer(String key, String userIp);
}Usage Example:
import com.google.api.client.googleapis.services.CommonGoogleClientRequestInitializer;
// Create request initializer with API key
GoogleClientRequestInitializer requestInitializer =
new CommonGoogleClientRequestInitializer("your-api-key");
// Use with client builder
MyGoogleApiClient client = new MyGoogleApiClient.Builder(transport, jsonFactory, credential)
.setApplicationName("My Application")
.setGoogleClientRequestInitializer(requestInitializer)
.build();
// Custom request initializer
GoogleClientRequestInitializer customInitializer = new GoogleClientRequestInitializer() {
@Override
public void initialize(AbstractGoogleClientRequest<?> request) throws IOException {
request.setRequestHeaders(new HttpHeaders().set("Custom-Header", "value"));
}
};HTTP transport interface for network communication.
JSON factory for parsing and serializing JSON data.
Interface for initializing HTTP requests.
Factory for creating HTTP requests.
Interface for parsing response objects.
JSON-specific object parser implementation.
HTTP headers container.
Generic URL builder and container.
Java output stream for downloading data.
Java input stream for streaming data.
Exception for I/O operations.
Java class type parameter for response parsing.
Install with Tessl CLI
npx tessl i tessl/maven-com-google-api-client--google-api-client