Ce référentiel contient les définitions d'interface originales des API Google publiques qui prennent en charge les protocoles REST et gRPC. La lecture des définitions d'interface d'origine peut permettre une meilleure compréhension des API Google et vous aider à les utiliser plus efficacement. Vous pouvez également utiliser ces définitions avec des outils open source pour générer des bibliothèques clientes, de la documentation et d'autres artefacts.
La méthode recommandée pour créer les bibliothèques client API consiste à utiliser Bazel >= 4.2.2.
Tout d’abord, installez Bazel.
Pour créer toutes les bibliothèques :
bazel build //...
Pour tester toutes les bibliothèques :
bazel test //...
Pour créer une bibliothèque dans toutes les langues :
bazel build //google/example/library/v1/...
Pour créer le package Java pour une bibliothèque :
bazel build //google/example/library/v1:google-cloud-example-library-v1-java
Les packages Bazel existent dans toutes les bibliothèques pour Java, Go, Python, Ruby, Node.js, PHP et C#.
Les API Google sont généralement déployées en tant que services API hébergés sous différents noms DNS. Un service API peut implémenter plusieurs API et plusieurs versions de la même API.
Les API Google utilisent Protocol Buffers version 3 (proto3) comme langage de définition d'interface (IDL) pour définir l'interface API et la structure des messages de charge utile. La même définition d'interface est utilisée pour les versions REST et RPC de l'API, accessibles via différents protocoles filaires.
Il existe plusieurs manières d'accéder aux API Google :
JSON sur HTTP : vous pouvez accéder à toutes les API Google directement à l'aide de JSON sur HTTP, à l'aide de la bibliothèque cliente d'API Google ou de bibliothèques clientes d'API tierces.
Tampons de protocole sur gRPC : vous pouvez accéder aux API Google publiées dans ce référentiel via GRPC, qui est un protocole RPC binaire hautes performances sur HTTP/2. Il offre de nombreuses fonctionnalités utiles, notamment le multiplexage requête/réponse et le streaming en duplex intégral.
Bibliothèques clientes Google Cloud : vous pouvez utiliser ces bibliothèques pour accéder aux API Google Cloud. Ils sont basés sur gRPC pour de meilleures performances et fournissent une surface client idiomatique pour une meilleure expérience de développement.
Ce référentiel contient des copies des définitions de l'API Google et des fichiers associés. Pour discuter ou soulever des problèmes concernant les bibliothèques clientes de l'API Google, GRPC ou les bibliothèques clientes Google Cloud, veuillez vous référer aux dépôts associés à chaque domaine.
Ce référentiel utilise une hiérarchie de répertoires qui reflète la structure du produit de l'API Google. En général, chaque API possède son propre répertoire racine et chaque version majeure de l'API possède son propre sous-répertoire. Les noms des packages de proto correspondent exactement au répertoire : cela facilite la localisation des définitions de proto et garantit que les bibliothèques clientes générées ont des espaces de noms idiomatiques dans la plupart des langages de programmation. À côté des répertoires API se trouvent les fichiers de configuration de la boîte à outils GAPIC.
REMARQUE : La version majeure d'une API est utilisée pour indiquer une modification importante apportée à l'API.
Pour générer le code source gRPC pour les API Google dans ce référentiel, vous devez d'abord installer à la fois les tampons de protocole et gRPC sur votre ordinateur local, puis vous pouvez exécuter make LANGUAGE=xxx all
pour générer le code source. Vous devez intégrer le code source généré dans votre système de création d'applications.
REMARQUE : Le Makefile est uniquement destiné à générer le code source pour l'ensemble du référentiel. Il ne s'agit pas de générer une bibliothèque client pouvant être liée pour une API spécifique. Veuillez consulter d'autres référentiels sous https://github.com/googleapis pour générer des bibliothèques clientes pouvant être liées.
Il est difficile de générer le code source Go gRPC à partir de ce référentiel, car Go a une structure de répertoires différente. Veuillez plutôt utiliser ce référentiel.