CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-com-google-api-client--google-api-client

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.

Pending
Overview
Eval results
Files

client-services.mddocs/

Client Services

Abstract base classes and request handling framework for building type-safe Google API clients with automatic JSON parsing and error handling.

Core Imports

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;

Abstract Client Classes

AbstractGoogleClient

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);
    }
}

AbstractGoogleJsonClient

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();

Request Classes

AbstractGoogleClientRequest

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);
}

AbstractGoogleJsonClientRequest

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();

Request Initializers

GoogleClientRequestInitializer

Interface for initializing Google API client requests.

public interface GoogleClientRequestInitializer {
    void initialize(AbstractGoogleClientRequest<?> request) throws IOException;
}

CommonGoogleClientRequestInitializer

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();
}

CommonGoogleJsonClientRequestInitializer

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"));
    }
};

Types

HttpTransport

HTTP transport interface for network communication.

JsonFactory

JSON factory for parsing and serializing JSON data.

HttpRequestInitializer

Interface for initializing HTTP requests.

HttpRequestFactory

Factory for creating HTTP requests.

ObjectParser

Interface for parsing response objects.

JsonObjectParser

JSON-specific object parser implementation.

HttpHeaders

HTTP headers container.

GenericUrl

Generic URL builder and container.

OutputStream

Java output stream for downloading data.

InputStream

Java input stream for streaming data.

IOException

Exception for I/O operations.

Class<T>

Java class type parameter for response parsing.

Install with Tessl CLI

npx tessl i tessl/maven-com-google-api-client--google-api-client

docs

batch-operations.md

client-services.md

http-transport.md

index.md

json-error-handling.md

media-operations.md

oauth2-auth.md

utilities.md

tile.json