Vista geral do gRPC
O gRPC é um framework de RPC universal de código aberto e de alto desempenho, desenvolvido pela Google. No gRPC, uma aplicação cliente pode chamar diretamente métodos numa aplicação servidor numa máquina diferente como se fosse um objeto local, o que facilita a criação de aplicações e serviços distribuídos.
Uma das principais vantagens da utilização do gRPC é a documentação. Pode usar os ficheiros de configuração do serviço e de definição da interface da API para gerar documentação de referência para a sua API.
Gestão de APIs
Com o API Gateway para gRPC, pode usar as capacidades de gestão de APIs do API Gateway para adicionar monitorização, alojamento, rastreio, autenticação e muito mais aos seus serviços gRPC no Cloud Run. Além disso, assim que especificar regras de mapeamento especiais, o API Gateway traduz JSON RESTful através de HTTP em pedidos gRPC. Isto significa que pode implementar um servidor gRPC gerido pelo API Gateway e chamar a respetiva API através de um cliente gRPC ou JSON/HTTP, o que lhe dá muito mais flexibilidade e facilidade de integração com outros sistemas.
Pode criar serviços gRPC para o API Gateway em qualquer idioma compatível com gRPC. Pode saber muito mais sobre o gRPC, incluindo inícios rápidos e tutoriais para criar servidores e clientes, no site do gRPC.
Definição e configuração do serviço
O gRPC baseia-se na ideia de definir um serviço, especificando os métodos que podem ser chamados remotamente com os respetivos parâmetros e tipos de retorno. Por predefinição, o gRPC usa buffers de protocolo como a linguagem de definição de interface (IDL) para descrever a interface de serviço e a estrutura das mensagens de carga útil.
// 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 API Gateway, tem de fornecer uma configuração do serviço juntamente com a definição do serviço. Esta configuração define o comportamento de tempo de execução do seu serviço, incluindo a autenticação, as APIs incluídas no serviço, os mapeamentos de pedidos HTTP para métodos gRPC e definições especiais do API Gateway.
Transcodificação
O API Gateway oferece tradução de protocolos para os seus serviços gRPC no Cloud Run, o que permite aos clientes usar HTTP/JSON para comunicar com um serviço gRPC através do API Gateway.
O exemplo de utilização mais comum é permitir que os clientes do navegador comuniquem com servidores gRPC sem suporte especial das bibliotecas cliente gRPC. O API Gateway fornece um mecanismo para mapear pedidos HTTP para métodos gRPC como parte da configuração do serviço.
Pode saber mais acerca deste assunto no artigo Transcodificação de HTTP/JSON para gRPC.
Limitações
As seguintes funcionalidades gRPC ainda não são suportadas no API Gateway:
- Compressão de payload
- Qualquer IDL que não seja buffers de protocolo
Atualmente, o API Gateway só suporta serviços gRPC do Cloud Run.
O que se segue?
- Explore exemplos. O exemplo
getting-started-grpc
está disponível no GitHub nos seguintes idiomas: - O exemplo da livraria está disponível nos seguintes idiomas: