Cloud Endpoints para gRPC

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.

gRPC Endpoints Service

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:

É possível executar o contêiner do ESP nos produtos a seguir:

É 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: