O gRPC é uma biblioteca RPC universal desenvolvida pelo Google, com código aberto e alto desempenho. No gRPC, um aplicativo cliente pode chamar métodos diretamente em um aplicativo servidor de uma outra máquina, como se ela fosse um objeto local, facilitando a criação de aplicativos e serviços distribuídos.
Um dos principais benefícios de usar o gRPC é a documentação; Você pode usar os arquivos de configuração do serviço e de definição da interface da API para gerar a documentação de referência para sua API. Consulte Visão geral do portal do desenvolvedor para mais informações.
Gerenciamento de APIs
O Endpoints funciona com o Extensible Service Proxy (ESP) ou com o Extensible Service Proxy V2 (ESPv2) para fornecer o gerenciamento de APIs.
Com o Endpoints para gRPC, é possível usar os recursos de gerenciamento de API do Endpoints para adicionar um Console de APIs, monitoramento, hospedagem, rastreamento, autenticação e muito mais aos seus serviços gRPC. Além disso, depois de especificar regras de mapeamento especiais, o ESP e o ESPv2 traduzem o JSON RESTful em HTTP para solicitações gRPC. Isso significa que é possível implantar um servidor gRPC gerenciado pelo Cloud Endpoints e chamar a API usando um cliente gRPC ou JSON/HTTP, proporcionando muito mais flexibilidade e facilidade de integração com outros sistemas.
Crie serviços gRPC para Cloud Endpoints em qualquer linguagem compatível com o gRPC. Descubra muito mais sobre o gRPC, inclusive guias de início rápido e tutoriais para criar servidores e clientes no site do gRPC.
Plataformas de computação compatíveis
O ESP e o ESPv2 são projetos de código aberto e estão disponíveis nas seguintes maneiras:
- um contêiner no Google Container Registry
- Consulte as Notas de lançamento do ESP (em inglês) referentes à atual imagem do Docker do ESP.
- Consulte as notas da versão do ESPv2 para ver a imagem atual do Docker do ESPv2.
- código-fonte no GitHub
- Consulte o README do ESP (em inglês) para detalhes sobre como criar o ESP.
- Consulte o README do ESPv2 para detalhes sobre como criar o ESPv2.
É possível executar o contêiner do ESP nos produtos a seguir:
- Compute Engine com Docker
- Kubernetes, incluindo o Google Kubernetes Engine
- um computador Linux ou macOS ou de outro provedor de nuvem
É possível executar o contêiner do ESPv2 nestes locais:
- Cloud Run
- Cloud Run for Anthos
- GKE;
- Compute Engine
- Kubernetes
Consulte Sobre o Cloud Endpoints para saber mais.
Para mais informações sobre como implantar a API e o ESP nas plataformas de computação do GCP, consulte Como implantar o back-end da API.
Definição e configuração de serviço
O gRPC tem como base a ideia de definir um serviço e especificar os métodos que podem ser chamados remotamente com parâmetros e tipos de retorno deles. Por padrão, o gRPC usa buffers de protocolo como a linguagem IDL (Interface Definition Language) para descrever a interface do serviço e a estrutura das mensagens de payload.
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
Para usar o gRPC com o Cloud Endpoints, forneça uma configuração de serviço com a definição do serviço. Isso define o comportamento de ambiente de execução do serviço, inclusive a autenticação, as APIs incluídas no serviço, os mapeamentos das solicitações HTTP para métodos gRPC e as configurações especiais do Cloud Endpoints.
Transcodificação
O Endpoints fornece conversão de protocolo para serviços gRPC, para que os clientes possam usar HTTP/JSON na comunicação com um serviço gRPC no ESP ou no ESPv2.
O caso de uso mais comum é a comunicação dos clientes de navegador com servidores gRPC sem suporte especial de bibliotecas de cliente gRPC. O Cloud Endpoints fornece um mecanismo para mapear solicitações HTTP para métodos do gRPC como parte da configuração do serviço.
É possível saber mais sobre isso em Como transcodificar HTTP/JSON em gRPC.
Limitações
Os seguintes recursos do gRPC ainda não são compatíveis com o Cloud Endpoints:
- compactação de payload
- qualquer IDL que não é buffer de protocolo
Além disso, o Endpoints só é compatível com serviços gRPC para GKE, Compute Engine e Cloud Run (Beta). O Endpoints não é compatível com serviços gRPC para ambientes do App Engine.
A seguir
- Siga um de nossos tutoriais para ter um serviço gRPC simples funcionando com o Cloud Endpoints no ambiente de sua escolha.
- Descubra como configurar um serviço gRPC para Cloud Endpoints.
- Explore amostras. A amostra getting-started-grpc está disponível no GitHub nas seguintes linguagens:
- A amostra Bookstore está disponível nas seguintes linguagens: