Cloud Endpoints para gRPC

O gRPC é uma biblioteca RPC universal de código aberto de alto desempenho desenvolvida pelo Google. 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
  • Knative serving
  • 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: