Partilhar via


Usar gRPC em aplicativos de navegador

Observação

Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 10 deste artigo.

Advertência

Esta versão do ASP.NET Core não é mais suportada. Para obter mais informações, consulte a Política de suporte do .NET e do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.

Por James Newton-King

Não é possível chamar diretamente um serviço gRPC a partir de um navegador. o gRPC utiliza funcionalidades HTTP/2, e nenhum navegador oferece o nível de controlo necessário sobre pedidos web para suportar um cliente gRPC.

O gRPC no ASP.NET Core oferece duas soluções compatíveis com browser, gRPC-Web e transcodificação gRPC JSON.

gRPC-Web

gRPC-Web permite que aplicações de navegador chamem serviços gRPC com o cliente gRPC-Web e Protobuf.

  • Semelhante ao gRPC normal, mas tem um wire-protocol ligeiramente diferente, o que o torna compatível com HTTP/1.1 e navegadores.
  • Exige que a aplicação do navegador gere um cliente gRPC a partir de um .proto ficheiro.
  • Permite que as aplicações de navegador beneficiem do alto desempenho e do baixo uso de rede proporcionados pelas mensagens binárias.

O .NET tem suporte incorporado para gRPC-Web. Para mais informações, consulte gRPC-Web em ASP.NET Core gRPC apps.

Transcodificação JSON gRPC

a transcodificação JSON gRPC permite que aplicações de navegador chamem serviços gRPC como se fossem APIs RESTful com JSON.

  • A aplicação de navegador não precisa de gerar um cliente gRPC nem de saber nada sobre gRPC.
  • As APIs RESTful são criadas automaticamente a partir de serviços gRPC através da anotação do .proto ficheiro com metadados HTTP.
  • Permite que uma aplicação suporte tanto as APIs web gRPC como JSON sem duplicar o esforço de construir serviços separados para ambos.

O .NET tem suporte incorporado para criar APIs web JSON a partir de serviços gRPC. Para mais informações, consulte transcodificação JSON gRPC nos aplicativos ASP.NET Core gRPC.

Observação

a transcodificação JSON gRPC requer .NET 7 ou posterior.

Recursos adicionais