Este repositório contém as definições de interface originais de APIs públicas do Google que oferecem suporte aos protocolos REST e gRPC. A leitura das definições originais da interface pode fornecer uma melhor compreensão das APIs do Google e ajudá-lo a utilizá-las com mais eficiência. Você também pode usar essas definições com ferramentas de software livre para gerar bibliotecas de cliente, documentação e outros artefatos.
A maneira recomendada de construir as bibliotecas cliente da API é por meio do Bazel >= 4.2.2.
Primeiro, instale o Bazel.
Para construir todas as bibliotecas:
bazel build //...
Para testar todas as bibliotecas:
bazel test //...
Para construir uma biblioteca em todos os idiomas:
bazel build //google/example/library/v1/...
Para construir o pacote Java para uma biblioteca:
bazel build //google/example/library/v1:google-cloud-example-library-v1-java
Os pacotes Bazel existem em todas as bibliotecas para Java, Go, Python, Ruby, Node.js, PHP e C#.
As APIs do Google normalmente são implantadas como serviços de API hospedados em diferentes nomes DNS. Um serviço de API pode implementar diversas APIs e diversas versões da mesma API.
As APIs do Google usam Protocol Buffers versão 3 (proto3) como sua linguagem de definição de interface (IDL) para definir a interface da API e a estrutura das mensagens de carga útil. A mesma definição de interface é usada para versões REST e RPC da API, que podem ser acessadas por meio de diferentes protocolos de conexão.
Existem várias maneiras de acessar as APIs do Google:
JSON sobre HTTP: você pode acessar todas as APIs do Google diretamente usando JSON sobre HTTP, usando a biblioteca cliente da API do Google ou bibliotecas cliente de API de terceiros.
Buffers de protocolo sobre gRPC: você pode acessar APIs do Google publicadas neste repositório por meio de GRPC, que é um protocolo RPC binário de alto desempenho sobre HTTP/2. Ele oferece muitos recursos úteis, incluindo multiplexação de solicitação/resposta e streaming full-duplex.
Bibliotecas de cliente do Google Cloud: você pode usar essas bibliotecas para acessar APIs do Google Cloud. Eles são baseados em gRPC para melhor desempenho e fornecem superfície de cliente idiomática para melhor experiência do desenvolvedor.
Este repositório contém cópias das definições da API do Google e arquivos relacionados. Para discussões ou para levantar questões sobre bibliotecas de cliente da API do Google, GRPC ou bibliotecas de cliente do Google Cloud, consulte os repositórios associados a cada área.
Este repositório usa uma hierarquia de diretórios que reflete a estrutura do produto API do Google. Em geral, cada API possui seu próprio diretório raiz e cada versão principal da API possui seu próprio subdiretório. Os nomes dos pacotes proto correspondem exatamente ao diretório: isso facilita a localização das definições do proto e garante que as bibliotecas clientes geradas tenham namespaces idiomáticos na maioria das linguagens de programação. Junto com os diretórios da API estão os arquivos de configuração do kit de ferramentas GAPIC.
NOTA: A versão principal de uma API é usada para indicar alterações significativas na API.
Para gerar o código-fonte gRPC para APIs do Google neste repositório, primeiro você precisa instalar os buffers de protocolo e o gRPC em sua máquina local e, em seguida, executar make LANGUAGE=xxx all
para gerar o código-fonte. Você precisa integrar o código-fonte gerado ao sistema de construção do seu aplicativo.
NOTA: O Makefile destina-se apenas a gerar código fonte para todo o repositório. Não serve para gerar uma biblioteca cliente vinculável para uma API específica. Consulte outros repositórios em https://github.com/googleapis para gerar bibliotecas de clientes vinculáveis.
É difícil gerar o código-fonte Go gRPC a partir deste repositório, pois Go tem uma estrutura de diretórios diferente. Por favor, use este repositório.