Usare gRPC nelle app del browser

Nota

Questa non è la versione più recente di questo articolo. Per la versione corrente, vedere la versione .NET 8 di questo articolo.

Avviso

Questa versione di ASP.NET Core non è più supportata. Per altre informazioni, vedere Criteri di supporto di .NET e .NET Core. Per la versione corrente, vedere la versione .NET 8 di questo articolo.

Importante

Queste informazioni si riferiscono a un prodotto non definitive che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.

Per la versione corrente, vedere la versione .NET 8 di questo articolo.

Di James Newton-King

Non è possibile chiamare direttamente un servizio gRPC da un browser. gRPC usa funzionalità HTTP/2 e nessun browser fornisce il livello di controllo richiesto sulle richieste Web per supportare un client gRPC.

gRPC in ASP.NET Core offre due soluzioni compatibili con browser, la transcodifica json gRPC-Web e gRPC.

gRPC-Web

gRPC-Web consente alle app browser di chiamare i servizi gRPC con il client gRPC-Web e Protobuf.

  • Simile al normale gRPC, ma ha un protocollo di collegamento leggermente diverso, che lo rende compatibile con HTTP/1.1 e browser.
  • Richiede che l'app browser generi un client gRPC da un .proto file.
  • Consente alle app del browser di sfruttare le prestazioni elevate e l'utilizzo ridotto della rete dei messaggi binari.

.NET include il supporto predefinito per gRPC-Web. Per altre informazioni, vedere gRPC-Web in ASP.NET app gRPC core.

Transcodifica JSON gRPC

La transcodifica JSON gRPC consente alle app del browser di chiamare i servizi gRPC come se fossero API RESTful con JSON.

  • L'app browser non deve generare un client gRPC o sapere nulla su gRPC.
  • Le API RESTful vengono create automaticamente dai servizi gRPC annotando il .proto file con i metadati HTTP.
  • Consente a un'app di supportare sia le API Web gRPC che JSON senza duplicare lo sforzo di creare servizi separati per entrambi.

.NET include il supporto predefinito per la creazione di API Web JSON dai servizi gRPC. Per altre informazioni, vedere transcodifica JSON gRPC nelle app gRPC di ASP.NET Core.

Nota

La transcodifica JSON gRPC richiede .NET 7 o versione successiva.

Risorse aggiuntive