Usar o 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 9 deste artigo.

Aviso

Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, confira .NET e a Política de Suporte do .NET Core. Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.

Importante

Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.

Para a versão atual, consulte a versão .NET 9 deste artigo.

Por James Newton-King

Não é possível chamar um serviço gRPC diretamente de um navegador. O gRPC usa recursos HTTP/2 e nenhum navegador fornece o nível de controle necessário em solicitações da Web para dar suporte a um cliente gRPC.

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

gRPC-Web

O GRPC-Web permite que aplicativos de navegador chamem serviços gRPC com o cliente gRPC-Web e o Protobuf.

  • Semelhante ao gRPC normal, mas com um protocolo de transmissão ligeiramente diferente, o que o torna compatível com HTTP/1.1 e navegadores.
  • Requer que o aplicativo do navegador gere um cliente gRPC de um arquivo .proto.
  • Permite que os aplicativos do navegador se beneficiem do alto desempenho e do baixo uso de rede de mensagens binárias.

O .NET tem suporte interno para gRPC-Web. Para obter mais informações, confira gRPC-Web em aplicativos gRPC do ASP.NET Core.

Transcodificação JSON gRPC

A transcodificação do gRPC JSON permite que os aplicativos de navegador chamem os serviços gRPC como se fossem APIs RESTful com JSON.

  • O aplicativo do navegador não precisa gerar um cliente gRPC nem saber nada sobre gRPC.
  • APIs RESTful são criadas automaticamente a partir de serviços gRPC anotando o arquivo .proto com metadados HTTP.
  • Permite que um aplicativo dê suporte a APIs Web JSON e gRPC sem a necessidade de criar de serviços separados para ambos.

O .NET tem suporte interno para criar APIs Web JSON a partir de serviços gRPC. Para obter mais informações, consulte Transcodificação JSON gRPC nos aplicativos gRPC do ASP.NET Core.

Observação

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

Recursos adicionais