Usare gRPC nelle app del browser

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 gRPC-Web e gRPC JSON.

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 gRPC JSON

la transcodifica gRPC JSON consente alle app del browser di chiamare i servizi gRPC come se fossero RESTAPI con JSON.

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

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

Nota

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

Risorse aggiuntive