Uso de gRPC en aplicaciones de explorador

Por James Newton-King

No es posible llamar directamente a un servicio gRPC desde un explorador. gRPC usa características de HTTP/2 y ningún explorador proporciona el nivel de control requerido a través de solicitudes web para admitir un cliente de gRPC.

gRPC en ASP.NET Core ofrece dos soluciones compatibles con el explorador, gRPC-Web y transcodificación JSON de gRPC.

gRPC-Web

gRPC-Web permite a las aplicaciones de explorador llamar a servicios gRPC con el cliente gRPC-Web y Protobuf.

  • Similar a gRPC normal, pero tiene un protocolo de conexión ligeramente diferente, lo que hace que sea compatible con HTTP/1.1 y exploradores.
  • Requiere que la aplicación del explorador genere un cliente gRPC desde un archivo .proto.
  • Permite que las aplicaciones de explorador saquen partido del uso de red de alto rendimiento y bajo nivel de mensajes binarios.

.NET tiene compatibilidad integrada con gRPC-Web. Para obtener más información, consulte gRPC-Web en aplicaciones gRPC de ASP.NET Core.

Transcodificación JSON de gRPC

La transcodificación JSON de gRPC permite a las aplicaciones de explorador llamar a servicios gRPC como si fueran RESTAPI ful con JSON.

  • No es necesario que la aplicación de explorador genere un cliente gRPC o que disponga de información sobre gRPC.
  • Las API de RESTful se crean automáticamente desde servicios gRPC, anotando para ello el archivo .proto con metadatos HTTP.
  • Permite que una aplicación admita API web de JSON y gRPC, sin duplicar el esfuerzo de tener que crear servicios independientes para cada uno de ellos.

.NET tiene compatibilidad integrada para crear API web de JSON desde servicios gRPC. Para obtener más información, vea Transcodificación JSON de gRPC en aplicaciones gRPC de ASP.NET Core.

Nota:

La transcodificación JSON de gRPC requiere .NET 7 o posterior.

Recursos adicionales