Idiomatischer Java-Client für Google Cloud Platform-Dienste.
Für die Entwicklung von Java-Anwendungen, die mit einzelnen Google Cloud-Diensten interagieren, stehen auf GitHub und Maven Central Bibliotheken zur Verfügung:
Kunde | Release-Level | Version |
---|---|---|
AI Platform-Notebooks | ||
API-Gateway | ||
API-Schlüssel-API | ||
Zugriffsgenehmigung | ||
API für Beratungsbenachrichtigungen | ||
AlloyDB | ||
AlloyDB-Anschlüsse | ||
Analytics Hub-API | ||
Apigee Connect | ||
App Engine-Administrator-API | ||
Artefaktregister | ||
Anlageninventar | ||
Gesicherte Arbeitsbelastung für die Regierung | ||
Auto ML | ||
Backup- und DR-Service-API | ||
BigQuery | ||
BigQuery-Verbindung | ||
BigQuery-Datenübertragungsdienst | ||
BigQuery-Reservierung | ||
BigQuery-Speicher | ||
Bigtable | ||
Bigtable Hbase-Client | ||
Abrechnung | ||
Abrechnungsbudgets | ||
Binärautorisierung | ||
Bauen | ||
CCAI-Einblicke | ||
Zertifizierungsstellendienst | ||
Kanaldienste | ||
Komponist | ||
Compute Engine | ||
Gateway-API verbinden | ||
Containeranalyse | ||
Steuert die Partner-API | ||
DNS | ||
Datenkatalog | ||
Datenfusion | ||
Datenherkunft | ||
Verhinderung von Datenverlust | ||
Datenbankmigrationsdienst | ||
Datenplex | ||
Datenproz | ||
Dataproc-Metastore | ||
Datenspeicher | ||
Datenstrom | ||
Debugger | ||
Einsetzen | ||
Dialogflow-API | ||
Discovery Engine-API | ||
Verteilter Rand | ||
Verteilte Edge-Netzwerk-API | ||
Dokumenten-KI | ||
Domänen | ||
Essential Contacts-API | ||
Eventarc | ||
Filestore-API | ||
Feuerladen | ||
Flottenrouting | ||
Funktionen | ||
GKE Hub-API | ||
ICH BIN | ||
IAM-Admin-API | ||
IAM-Richtlinien-Fehlerbehebungs-API | ||
API für IAM-Dienstkonto-Anmeldeinformationen | ||
Identity Access Context Manager | ||
Identitätsbewusste Proxy-API | ||
Infrastrukturmanager-API | ||
Kern des Internets der Dinge (IoT). | ||
Einbrucherkennungssystem | ||
Schlüsselverwaltungsdienst | ||
Kubernetes-Engine | ||
Protokollierung | ||
Verwalteter Dienst für Microsoft Active Directory | ||
Memcache | ||
Überwachungs-Dashboards | ||
Natürliche Sprache | ||
Netzwerkkonnektivitätszentrum | ||
Netzwerkverwaltungs-API | ||
Netzwerksicherheits-API | ||
Betriebssystemkonfigurations-API | ||
Betriebssystem-Anmeldung | ||
Organisationsrichtlinie | ||
Profiler | ||
Pub/Sub | ||
Pub/Sub-Gruppen-Kafka-Connector | ||
Pub/Sub Lite | ||
Pub/Sub Lite Kafka Shim | ||
Pub/Sub Lite Spark Connector | ||
API der öffentlichen Zertifizierungsstelle | ||
Quoten-API | ||
Empfehlungsgeber | ||
Redis | ||
Ressourcenmanager-API | ||
API für Ressourceneinstellungen | ||
Einzelhandel | ||
Routen-API | ||
Planer | ||
Geheimes Management | ||
Secure Source Manager-API | ||
Security Center-Verwaltungs-API | ||
Sicherheitskommandozentrale | ||
Sicherheitsstatus-API | ||
Sicherheitsscanner | ||
Serverloser VPC-Zugriff | ||
Dienststeuerungs-API | ||
Serviceverzeichnis | ||
Service-Management-API | ||
Servicenutzung | ||
Hülse | ||
Schlüssel | ||
Schraubenschlüssel JDBC | ||
Rede | ||
Stackdriver-Überwachung | ||
Stackdriver-Trace | ||
Lagerung | ||
Speicherübertragungsdienst | ||
TPU | ||
Talentlösung | ||
Aufgaben | ||
Telco-Automatisierungs-API | ||
Text-to-Speech | ||
Übersetzung | ||
VM-Migration | ||
Vertex-KI | ||
VertexAI-API | ||
Videointelligenz | ||
Video-Stitcher-API | ||
Video-Transcoder | ||
Vision | ||
Web-Risiko | ||
Workflow-Ausführungen | ||
Arbeitsabläufe | ||
Workspace-Add-ons-API | ||
Arbeitsplätze | ||
reCAPTCHA Enterprise | ||
API-Hub-API | ||
Ad Manager-API | ||
Adressvalidierungs-API | ||
Analytics-Administrator | ||
Analysedaten | ||
Analytics-Hub | ||
Anthos Multicloud | ||
Verwalteter Dienst für die Apache Kafka-API | ||
App Hub-API | ||
Bereich 120 Tische | ||
Backup für GKE | ||
Bare-Metal-Lösung | ||
Charge | ||
BeyondCorp AppConnections | ||
BeyondCorp AppConnectors | ||
BeyondCorp AppGateways | ||
BeyondCorp ClientConnectorServices | ||
BeyondCorp ClientGateways | ||
BigLake | ||
BigQuery DataPolicy-API | ||
BigQuery-Migration | ||
CSS-API | ||
Zertifikatsmanager | ||
Chat-API | ||
Kommerzielle Verbraucherbeschaffung | ||
Confidential Computing-API | ||
Gateway-API verbinden | ||
Datenkennzeichnung | ||
Datenfluss | ||
Datenform | ||
Developer Connect-API | ||
Dialogflow CX | ||
Dokumentieren Sie das AI Warehouse | ||
Enterprise Knowledge Graph | ||
Fehlerberichterstattung | ||
Eventarc Publishing | ||
GDC-Hardware-Management-API | ||
KMS-Inventar-API | ||
Lebenswissenschaften | ||
Live-Stream-API | ||
Logback-Appender für die Protokollierung | ||
Protokollierungs-Servlet-Initialisierer | ||
Maps Platform Datasets-API | ||
Admin-API der Marketingplattform | ||
Medienübersetzungs-API | ||
Lernen Sie API kennen | ||
Memorystore für Redis-API | ||
Händler-API | ||
Händler-API | ||
Händler-API | ||
Händler-API | ||
Händler-API | ||
Händler-API | ||
Merchant Conversions API | ||
Händler-LFP-API | ||
Händlerbenachrichtigungs-API | ||
Händlerquoten-API | ||
Migrationscenter-API | ||
Überwachungsmetrikbereiche | ||
NIO-Dateisystemanbieter für Speicher | ||
NetApp-API | ||
Netzwerkdienste-API | ||
Oracle Database@API | ||
Parallelstore-API | ||
Phishing-Schutz | ||
Places-API (neu) | ||
Places Insights-API | ||
Richtliniensimulator-API | ||
Privater Katalog | ||
Privileged Access Manager-API | ||
Pub/Sub Lite Flink-Connector | ||
Rapid Migration Assessment API | ||
Empfehlungen KI | ||
Registrierungs-API | ||
Routenoptimierungs-API | ||
Laufen | ||
Security Command Center-Einstellungs-API | ||
Service Health-API | ||
Solar-API | ||
Storage Insights-API | ||
Support-API | ||
VMware Engine | ||
Vision AI-API | ||
Workspace Events-API |
Wenn der Dienst nicht aufgeführt ist, stellt google-api-java-client über eine ältere REST-Schnittstelle eine Schnittstelle zu zusätzlichen Google Cloud-APIs her.
Beim Erstellen von Java-Anwendungen sollten die in der Tabelle aufgeführten Bibliotheken bevorzugt werden.
Die meisten google-cloud
-Bibliotheken erfordern eine Projekt-ID. Es gibt mehrere Möglichkeiten, diese Projekt-ID anzugeben.
google-cloud
-Bibliotheken in Compute/App Engine verwenden, ist es nicht erforderlich, eine Projekt-ID anzugeben. Es wird automatisch aus der Produktionsumgebung abgeleitet.google-cloud
anderswo verwenden, können Sie einen der folgenden Schritte ausführen:Geben Sie beim Erstellen der Serviceoptionen die Projekt-ID an. Um beispielsweise Datastore aus einem Projekt mit der ID „PROJECT_ID“ zu verwenden, können Sie Folgendes schreiben:
Datastore datastore = DatastoreOptions . newBuilder (). setProjectId ( "PROJECT_ID" ). build (). getService ();
Geben Sie die Umgebungsvariable GOOGLE_CLOUD_PROJECT
als Ihre gewünschte Projekt-ID an.
Legen Sie die Projekt-ID mit dem Google Cloud SDK fest. Um das SDK zu verwenden, laden Sie es herunter, falls Sie es noch nicht getan haben, und legen Sie die Projekt-ID über die Befehlszeile fest. Zum Beispiel:
gcloud config set project PROJECT_ID
google-cloud
ermittelt die Projekt-ID aus den folgenden Quellen in der aufgeführten Reihenfolge und stoppt, sobald ein Wert gefunden wird:
GOOGLE_CLOUD_PROJECT
angegebene Projekt-IDGOOGLE_APPLICATION_CREDENTIALS
verweistIn Fällen, in denen die Bibliothek möglicherweise explizit eine Projekt-ID erwartet, stellen wir ein Hilfsprogramm bereit, das die abgeleitete Projekt-ID bereitstellen kann:
import com . google . cloud . ServiceOptions ;
...
String projectId = ServiceOptions . getDefaultProjectId ();
google-cloud-java
verwendet https://github.com/googleapis/google-auth-library-java zur Authentifizierung von Anfragen. google-auth-library-java
unterstützt eine Vielzahl von Authentifizierungstypen; Weitere Informationen finden Sie in der README-Datei und im Javadoc des Projekts.
Bei der Verwendung von Google Cloud-Bibliotheken aus einer Google Cloud Platform-Umgebung wie Compute Engine, Kubernetes Engine oder App Engine sind keine zusätzlichen Authentifizierungsschritte erforderlich.
Zum Beispiel:
Storage storage = StorageOptions . getDefaultInstance (). getService ();
oder:
CloudTasksClient cloudTasksClient = CloudTasksClient . create ();
Generieren Sie einen JSON-Dienstkontoschlüssel.
Nachdem Sie diesen Schlüssel heruntergeladen haben, müssen Sie einen der folgenden Schritte ausführen:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/key.json
Storage storage = StorageOptions . newBuilder ()
. setCredentials ( ServiceAccountCredentials . fromStream ( new FileInputStream ( "/path/to/my/key.json" )))
. build ()
. getService ();
Bei lokaler Ausführung für Entwicklung/Tests können Sie das Google Cloud SDK verwenden. Erstellen Sie Standardanmeldeinformationen für Anwendungen mit gcloud auth application-default login
. Anschließend erkennt google-cloud
diese Anmeldeinformationen automatisch.
Wenn Sie bereits über ein OAuth2-Zugriffstoken verfügen, können Sie es zur Authentifizierung verwenden (beachten Sie, dass das Zugriffstoken in diesem Fall nicht automatisch aktualisiert wird):
Credentials credentials = GoogleCredentials . create ( new AccessToken ( accessToken , expirationTime ));
Storage storage = StorageOptions . newBuilder ()
. setCredentials ( credentials )
. build ()
. getService ();
oder:
Credentials credentials = GoogleCredentials . create ( new AccessToken ( accessToken , expirationTime ));
CloudTasksSettings cloudTasksSettings = CloudTasksSettings . newBuilder ()
. setCredentialProvider ( FixedCredentialsProvider . create ( credentials ))
. build ();
CloudTasksClient cloudTasksClient = CloudTasksClient . create ( cloudTasksSettings );
Wenn keine Anmeldeinformationen angegeben werden, versucht google-cloud
, diese mithilfe von GoogleCredentials.getApplicationDefault()
in der Umgebung zu erkennen, wodurch an den folgenden Orten (in der Reihenfolge) nach Standardanmeldeinformationen für Anwendungen gesucht wird:
GOOGLE_APPLICATION_CREDENTIALS
verweistgcloud auth application-default login
bereitgestellte AnmeldeinformationenDie Authentifizierung mit API-Schlüsseln wird von einer Handvoll Google Cloud-APIs unterstützt.
Wir suchen aktiv nach Möglichkeiten, das API-Key-Erlebnis zu verbessern. Um einen API-Schlüssel mit einer Java-Client-Bibliothek zu verwenden, müssen Sie derzeit den Header für den entsprechenden Dienst-Client manuell festlegen.
So legen Sie beispielsweise den API-Schlüssel mit dem Sprachdienst fest:
public LanguageServiceClient createGrpcClientWithApiKey ( String apiKey ) throws Exception {
// Manually set the api key via the header
Map < String , String > header = new HashMap < String , String >() { { put ( "x-goog-api-key" , apiKey );}};
FixedHeaderProvider headerProvider = FixedHeaderProvider . create ( header );
// Create the client
TransportChannelProvider transportChannelProvider = InstantiatingGrpcChannelProvider . newBuilder (). setHeaderProvider ( headerProvider ). build ();
LanguageServiceSettings settings = LanguageServiceSettings . newBuilder (). setTransportChannelProvider ( transportChannelProvider ). build ();
LanguageServiceClient client = LanguageServiceClient . create ( settings );
return client ;
}
Eine Beispielinstanziierung mit dem Language Client unter Verwendung von rest:
public LanguageServiceClient createRestClientWithApiKey ( String apiKey ) throws Exception {
// Manually set the api key header
Map < String , String > header = new HashMap < String , String >() { { put ( "x-goog-api-key" , apiKey );}};
FixedHeaderProvider headerProvider = FixedHeaderProvider . create ( header );
// Create the client
TransportChannelProvider transportChannelProvider = InstantiatingHttpJsonChannelProvider . newBuilder (). setHeaderProvider ( headerProvider ). build ();
LanguageServiceSettings settings = LanguageServiceSettings . newBuilder (). setTransportChannelProvider ( transportChannelProvider ). build ();
LanguageServiceClient client = LanguageServiceClient . create ( settings );
return client ;
}
Um Hilfe zu erhalten, befolgen Sie die Anweisungen im Dokument zur Fehlerbehebung.
Google Cloud-Clientbibliotheken verwenden HTTPS und gRPC für die zugrunde liegende Kommunikation mit den Diensten. In beiden Protokollen können Sie einen Proxy mithilfe der Eigenschaften https.proxyHost
und (optional) https.proxyPort
konfigurieren.
Für einen individuelleren Proxy mit gRPC müssen Sie dem ManagedChannelBuilder
einen ProxyDetector
bereitstellen:
import com . google . api . core . ApiFunction ;
import com . google . api . gax . rpc . TransportChannelProvider ;
import com . google . cloud . tasks . v2 . CloudTasksClient ;
import com . google . cloud . tasks . v2 . CloudTasksSettings ;
import com . google . cloud . tasks . v2 . stub . CloudTasksStubSettings ;
import io . grpc . HttpConnectProxiedSocketAddress ;
import io . grpc . ManagedChannelBuilder ;
import io . grpc . ProxiedSocketAddress ;
import io . grpc . ProxyDetector ;
import javax . annotation . Nullable ;
import java . io . IOException ;
import java . net . InetSocketAddress ;
import java . net . SocketAddress ;
public CloudTasksClient getService () throws IOException {
TransportChannelProvider transportChannelProvider =
CloudTasksStubSettings . defaultGrpcTransportProviderBuilder ()
. setChannelConfigurator (
new ApiFunction < ManagedChannelBuilder , ManagedChannelBuilder >() {
@ Override
public ManagedChannelBuilder apply ( ManagedChannelBuilder managedChannelBuilder ) {
return managedChannelBuilder . proxyDetector (
new ProxyDetector () {
@ Nullable
@ Override
public ProxiedSocketAddress proxyFor ( SocketAddress socketAddress )
throws IOException {
return HttpConnectProxiedSocketAddress . newBuilder ()
. setUsername ( PROXY_USERNAME )
. setPassword ( PROXY_PASSWORD )
. setProxyAddress ( new InetSocketAddress ( PROXY_HOST , PROXY_PORT ))
. setTargetAddress (( InetSocketAddress ) socketAddress )
. build ();
}
});
}
})
. build ();
CloudTasksSettings cloudTasksSettings =
CloudTasksSettings . newBuilder ()
. setTransportChannelProvider ( transportChannelProvider )
. build ();
return CloudTasksClient . create ( cloudTasksSettings );
}
Lang laufende Vorgänge (LROs) werden häufig für API-Aufrufe verwendet, deren Abschluss voraussichtlich lange dauern wird (z. B. Bereitstellung einer GCE-Instanz oder einer Dataflow-Pipeline). Der erste API-Aufruf erstellt einen „Vorgang“ auf dem Server und gibt eine Vorgangs-ID zurück, um seinen Fortschritt zu verfolgen. Bei LRO-RPCs wird das Suffix Async
an den Aufrufnamen angehängt (z. B. clusterControllerClient.createClusterAsync()
“).
Unsere generierten Clients bieten eine schöne Schnittstelle zum Starten des Vorgangs und zum anschließenden Warten auf den Abschluss des Vorgangs. Dies wird durch die Rückgabe eines OperationFuture
erreicht. Beim Aufruf von get()
für OperationFuture
fragt die Clientbibliothek den Vorgang ab, um den Status des Vorgangs zu überprüfen.
Nehmen Sie zum Beispiel einen Beispielvorgang zum createCluster
in google-cloud-dataproc v4.20.0:
try ( ClusterControllerClient clusterControllerClient = ClusterControllerClient . create ()) {
CreateClusterRequest request =
CreateClusterRequest . newBuilder ()
. setProjectId ( "{PROJECT_ID}" )
. setRegion ( "{REGION}" )
. setCluster ( Cluster . newBuilder (). build ())
. setRequestId ( "{REQUEST_ID}" )
. setActionOnFailedPrimaryWorkers ( FailureAction . forNumber ( 0 ))
. build ();
OperationFuture < Cluster , ClusterOperationMetadata > future =
clusterControllerClient . createClusterOperationCallable (). futureCall ( request );
// Do something.
Cluster response = future . get ();
} catch ( CancellationException e ) {
// Exceeded the default RPC timeout without the Operation completing.
// Library is no longer polling for the Operation status. Consider
// increasing the timeout.
}
Für die Abfragevorgänge gilt ein Standardzeitlimit, das von Dienst zu Dienst unterschiedlich ist. Die Bibliothek löst eine java.util.concurrent.CancellationException
mit der Meldung aus: Task was cancelled.
wenn die Zeitüberschreitung den Vorgang überschreitet. Eine CancellationException
bedeutet nicht, dass der Backend-GCP-Vorgang abgebrochen wurde. Diese Ausnahme wird von der Clientbibliothek ausgelöst, wenn die Gesamtzeitüberschreitung überschritten wurde, ohne dass der Vorgang einen erfolgreichen Status erhielt. Unsere Client-Bibliotheken respektieren die konfigurierten Werte, die im OperationTimedPollAlgorithm für jeden RPC festgelegt sind.
Hinweis: Die Clientbibliothek übernimmt den Abfragemechanismus des Vorgangs für Sie. Standardmäßig ist es nicht erforderlich, den Status selbst manuell abzufragen.
Jeder LRO-RPC verfügt über einen Satz vorkonfigurierter Standardwerte. Sie können diese Werte finden, indem Sie in der StubSettings
-Klasse jedes Clients suchen. Die Standard-LRO-Einstellungen werden innerhalb der initDefaults()
-Methode in der verschachtelten Builder-Klasse initialisiert.
In google-cloud-aiplatform v3.24.0 hat der standardmäßige OperationTimedPollAlgorithm beispielsweise die folgenden Standardwerte:
OperationTimedPollAlgorithm . create (
RetrySettings . newBuilder ()
. setInitialRetryDelay ( Duration . ofMillis ( 5000L ))
. setRetryDelayMultiplier ( 1.5 )
. setMaxRetryDelay ( Duration . ofMillis ( 45000L ))
. setInitialRpcTimeout ( Duration . ZERO )
. setRpcTimeoutMultiplier ( 1.0 )
. setMaxRpcTimeout ( Duration . ZERO )
. setTotalTimeout ( Duration . ofMillis ( 300000L ))
. build ())
Sowohl Wiederholungsversuche als auch LROs nutzen dieselbe RetrySettings-Klasse. Beachten Sie den entsprechenden Link:
Die RPC-Timeout-Werte haben in LROs keine Verwendung und können weggelassen oder auf die Standardwerte gesetzt werden ( Duration.ZERO
für Timeouts oder 1.0
für den Multiplikator).
Um die LRO-Werte zu konfigurieren, erstellen Sie ein OperationTimedPollAlgorithm-Objekt und aktualisieren Sie den Polling-Algorithmus des RPC. Zum Beispiel:
ClusterControllerSettings . Builder settingsBuilder = ClusterControllerSettings . newBuilder ();
TimedRetryAlgorithm timedRetryAlgorithm = OperationTimedPollAlgorithm . create (
RetrySettings . newBuilder ()
. setInitialRetryDelay ( Duration . ofMillis ( 500L ))
. setRetryDelayMultiplier ( 1.5 )
. setMaxRetryDelay ( Duration . ofMillis ( 5000L ))
. setInitialRpcTimeout ( Duration . ZERO ) // ignored
. setRpcTimeoutMultiplier ( 1.0 ) // ignored
. setMaxRpcTimeout ( Duration . ZERO ) // ignored
. setTotalTimeout ( Duration . ofHours ( 24L )) // set polling timeout to 24 hours
. build ());
settingsBuilder . createClusterOperationSettings ()
. setPollingAlgorithm ( timedRetryAlgorithm );
ClusterControllerClient clusterControllerClient = ClusterControllerClient . create ( settingsBuilder . build ());
Hinweis: Die obige Konfiguration ändert nur die LRO-Werte für den createClusterOperation
RPC. Die anderen RPCs im Client verwenden weiterhin die vorkonfigurierten LRO-Werte jedes RPCs.
Wenn Sie mehr als eine Google Cloud-Clientbibliothek verwenden, empfehlen wir Ihnen, eines unserer Stücklistenartefakte zu verwenden, um die Verwaltung von Abhängigkeitsversionen zu erleichtern. Weitere Informationen finden Sie unter Verwenden der Cloud-Client-Bibliotheken.
Für die Nutzung der Clients in diesem Repository ist Java 8 oder höher erforderlich.
Clients in diesem Repository verwenden entweder HTTP oder gRPC für die Transportschicht. Alle HTTP-basierten Clients sollten in allen Umgebungen funktionieren.
Für Clients, die gRPC verwenden, werden die unterstützten Plattformen durch die Plattformen eingeschränkt, die Forked Tomcat Native unterstützt, was für Architekturen nur x86_64 und für Betriebssysteme Mac OS X, Windows und Linux bedeutet. Darüber hinaus schränkt gRPC die Verwendung von Plattformen mit Threading-Einschränkungen ein.
Daher wird Folgendes nicht unterstützt:
Die folgenden Umgebungen sollten (unter anderem) funktionieren:
Diese Bibliothek bietet Tools zum Schreiben von Tests für Code, der Google-Cloud-Dienste verwendet.
Weitere Informationen zur Verwendung unserer Testhelfer finden Sie unter TESTEN.
Diese Bibliothek folgt der semantischen Versionierung mit einigen zusätzlichen Qualifikationen:
Mit @BetaApi
oder @Experimental
gekennzeichnete Komponenten gelten als „0.x“-Features innerhalb einer „1.x“-Bibliothek. Dies bedeutet, dass sie auf inkompatible Weise zwischen Neben- und Patch-Releases wechseln können. Diese Funktionen sollten von keiner Bibliothek „B“ verwendet werden, die selbst Verbraucher hat, es sei denn, die Komponenten der Bibliothek B, die @BetaApi
-Funktionen verwenden, sind ebenfalls mit @BetaApi
gekennzeichnet. Als @BetaApi
gekennzeichnete Features sind auf dem Weg, schließlich zu „1.x“-Features zu werden, wenn die Markierung entfernt wird.
Besondere Ausnahme für google-cloud-java : google-cloud-java darf von @BetaApi
Funktionen in gax-java abhängen, ohne den verbrauchenden Code @BetaApi
zu deklarieren, da gax-java und google-cloud-java sich im Gleichschritt bewegen . Aus diesem Grund sollte gax-java nicht unabhängig von google-cloud-java verwendet werden.
Mit @InternalApi
gekennzeichnete Komponenten sind technisch gesehen öffentlich, jedoch nur aufgrund der Einschränkungen der Java-Zugriffsmodifikatoren. Im Sinne von Semver sollten sie als privat betrachtet werden.
Mit @InternalExtensionOnly
gekennzeichnete Schnittstellen sind öffentlich, sollten aber nur von internen Klassen implementiert werden. Aus Sicherheitsgründen behalten wir uns das Recht vor, diese Schnittstellen ohne Standardimplementierungen zu ergänzen (für Java 7).
Bitte beachten Sie, dass sich diese Clients derzeit in der aktiven Entwicklung befinden. Jede Version mit der Version 0.xy unterliegt jederzeit rückwärtskompatiblen Änderungen.
Von Bibliotheken, die mit der Qualitätsstufe „Stabil“ definiert sind, wird erwartet, dass sie stabil sind und alle Aktualisierungen in den Bibliotheken garantiert abwärtskompatibel sind. Alle abwärtsinkompatiblen Änderungen führen zur Erhöhung der Hauptversion (1.xy -> 2.0.0).
Bibliotheken, die mit der Qualitätsstufe „Vorschau“ definiert sind, sind noch in Arbeit und erhalten mit größerer Wahrscheinlichkeit abwärtsinkompatible Updates. Darüber hinaus ist es möglich, dass Vorschaubibliotheken veraltet sind und gelöscht werden, bevor sie jemals zur Vorschau oder stabil heraufgestuft werden.
Wenn Sie IntelliJ oder Eclipse verwenden, können Sie mithilfe dieser IDE-Plugins Clientbibliotheken zu Ihrem Projekt hinzufügen:
Neben dem Hinzufügen von Client-Bibliotheken bieten die Plugins zusätzliche Funktionen, wie z. B. die Verwaltung von Dienstkontoschlüsseln. Weitere Einzelheiten finden Sie in der Dokumentation zu jedem Plugin.
Diese Clientbibliotheken können im App Engine-Standard für die Java 8-Laufzeitumgebung und in der flexiblen App Engine-Umgebung (einschließlich der Compat-Laufzeitumgebung) verwendet werden. Die meisten Bibliotheken funktionieren nicht mit dem App Engine-Standard für die Java 7-Laufzeitumgebung. Datastore, Storage und Bigquery sollten jedoch funktionieren.
Beiträge zu dieser Bibliothek sind jederzeit willkommen und sehr erwünscht.
Weitere Informationen zu den ersten Schritten finden Sie in der CONTRIBUTING-Dokumentation von google-cloud
und in der freigegebenen Dokumentation.
Bitte beachten Sie, dass dieses Projekt mit einem Verhaltenskodex für Mitwirkende veröffentlicht wird. Durch die Teilnahme an diesem Projekt erklären Sie sich mit den Bedingungen einverstanden. Weitere Informationen finden Sie im Verhaltenskodex.
Apache 2.0 – Weitere Informationen finden Sie unter LIZENZ.