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 gRPC refere-se à documentação. É possível usar sua configuração do serviço e arquivos de definição da interface da API para gerar documentação de referência para sua API. Consulte Visão geral do portal do desenvolvedor para saber mais informações.

Gerenciamento de API

O Cloud Endpoints trabalha com o Extensible Service Proxy (ESP) para fornecer gerenciamento de API.

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 converte o JSON RESTful em HTTP em 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.

Serviço gRPC do Endpoints

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 é um projeto de código aberto e está disponível como:

  • um contêiner no Google Container Registry. Consulte as notas da versão do ESP referentes à atual imagem do Docker.
  • código-fonte no GitHub Consulte o README do ESP para detalhes sobre como criar o ESP.

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

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 Cloud 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 por meio do Extensible Service Proxy.

O caso de uso mais comum é a comunicação dos clientes de navegador com servidores gRPC sem suporte especial de bibliotecas do servidor 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

O Cloud Endpoints não é compatível com ambientes do App Engine para serviços do gRPC. Ele só é compatível com o GKE e o Compute 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 de bookstore está disponível nas seguintes linguagens:
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud Endpoints com gRPC
Precisa de ajuda? Acesse nossa página de suporte.