Dieses Repository enthält die ursprünglichen Schnittstellendefinitionen öffentlicher Google APIs, die sowohl REST- als auch gRPC-Protokolle unterstützen. Das Lesen der ursprünglichen Schnittstellendefinitionen kann zu einem besseren Verständnis der Google APIs führen und Ihnen dabei helfen, diese effizienter zu nutzen. Sie können diese Definitionen auch mit Open-Source-Tools verwenden, um Clientbibliotheken, Dokumentation und andere Artefakte zu generieren.
Die empfohlene Methode zum Erstellen der API-Client-Bibliotheken ist Bazel >= 4.2.2.
Installieren Sie zunächst Bazel.
So erstellen Sie alle Bibliotheken:
bazel build //...
So testen Sie alle Bibliotheken:
bazel test //...
So erstellen Sie eine Bibliothek in allen Sprachen:
bazel build //google/example/library/v1/...
So erstellen Sie das Java-Paket für eine Bibliothek:
bazel build //google/example/library/v1:google-cloud-example-library-v1-java
Bazel-Pakete gibt es in allen Bibliotheken für Java, Go, Python, Ruby, Node.js, PHP und C#.
Google APIs werden normalerweise als API-Dienste bereitgestellt, die unter verschiedenen DNS-Namen gehostet werden. Ein API-Dienst kann mehrere APIs und mehrere Versionen derselben API implementieren.
Google APIs verwenden Protocol Buffers Version 3 (proto3) als Interface Definition Language (IDL), um die API-Schnittstelle und die Struktur der Nutzlastnachrichten zu definieren. Die gleiche Schnittstellendefinition wird sowohl für die REST- als auch für die RPC-Version der API verwendet, auf die über verschiedene Wire-Protokolle zugegriffen werden kann.
Es gibt verschiedene Möglichkeiten, auf Google APIs zuzugreifen:
JSON über HTTP: Sie können über JSON über HTTP direkt auf alle Google APIs zugreifen, indem Sie die Google API-Clientbibliothek oder API-Clientbibliotheken von Drittanbietern verwenden.
Protokollpuffer über gRPC: Sie können über GRPC, ein leistungsstarkes binäres RPC-Protokoll über HTTP/2, auf die in diesem Repository veröffentlichten Google APIs zugreifen. Es bietet viele nützliche Funktionen, einschließlich Anforderungs-/Antwort-Multiplex und Vollduplex-Streaming.
Google Cloud-Clientbibliotheken: Sie können diese Bibliotheken verwenden, um auf Google Cloud-APIs zuzugreifen. Sie basieren auf gRPC für eine bessere Leistung und bieten eine idiomatische Clientoberfläche für ein besseres Entwicklererlebnis.
Dieses Repo enthält Kopien der Google API-Definitionen und zugehöriger Dateien. Für Diskussionen oder um Fragen zu Google API-Clientbibliotheken, GRPC oder Google Cloud-Clientbibliotheken zu äußern, schauen Sie sich bitte die Repos an, die den einzelnen Bereichen zugeordnet sind.
Dieses Repository verwendet eine Verzeichnishierarchie, die die Google API-Produktstruktur widerspiegelt. Im Allgemeinen verfügt jede API über ein eigenes Stammverzeichnis und jede Hauptversion der API über ein eigenes Unterverzeichnis. Die Proto-Paketnamen stimmen genau mit dem Verzeichnis überein: Dies erleichtert das Auffinden der Proto-Definitionen und stellt sicher, dass die generierten Client-Bibliotheken in den meisten Programmiersprachen über idiomatische Namespaces verfügen. Neben den API-Verzeichnissen befinden sich die Konfigurationsdateien für das GAPIC-Toolkit.
HINWEIS: Die Hauptversion einer API wird verwendet, um wichtige Änderungen an der API anzuzeigen.
Um gRPC-Quellcode für Google APIs in diesem Repository zu generieren, müssen Sie zunächst sowohl Protocol Buffers als auch gRPC auf Ihrem lokalen Computer installieren. Anschließend können Sie make LANGUAGE=xxx all
ausführen, um den Quellcode zu generieren. Sie müssen den generierten Quellcode in Ihr Anwendungserstellungssystem integrieren.
HINWEIS: Das Makefile ist nur dazu gedacht, Quellcode für das gesamte Repository zu generieren. Es dient nicht der Generierung einer verknüpfbaren Clientbibliothek für eine bestimmte API. Weitere Informationen zum Generieren verlinkbarer Clientbibliotheken finden Sie in anderen Repositories unter https://github.com/googleapis.
Es ist schwierig, Go-gRPC-Quellcode aus diesem Repository zu generieren, da Go eine andere Verzeichnisstruktur hat. Bitte verwenden Sie stattdessen dieses Repository.