Använda gRPC i webbläsarappar

Anmärkning

Det här är inte den senaste versionen av den här artikeln. Den aktuella versionen finns i .NET 10-versionen av den här artikeln.

Varning

Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i supportpolicyn för .NET och .NET Core. För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .

Av James Newton-King

Det går inte att anropa en gRPC-tjänst direkt från en webbläsare. gRPC använder HTTP/2-funktioner och ingen webbläsare ger den kontrollnivå som krävs för webbbegäranden för att stödja en gRPC-klient.

gRPC på ASP.NET Core erbjuder två webbläsarkompatibla lösningar, gRPC-Web och gRPC JSON-transkodning.

gRPC-Web

gRPC-Web tillåter webbläsarappar att anropa gRPC-tjänster med gRPC-Web-klienten och Protobuf.

  • Liknar normalt gRPC, men det har ett något annorlunda trådprotokoll, vilket gör det kompatibelt med HTTP/1.1 och webbläsare.
  • Kräver att webbläsarappen genererar en gRPC-klient från en .proto fil.
  • Gör att webbläsarappar kan dra nytta av hög prestanda och låg nätverksanvändning av binära meddelanden.

.NET har inbyggt stöd för gRPC-Web. Mer information finns i gRPC-Web i ASP.NET Core gRPC-appar.

gRPC JSON-transkodning

gRPC JSON-omkodning gör att webbläsarappar kan anropa gRPC-tjänster som om de vore RESTful-API:er med JSON.

  • Webbläsarappen behöver inte generera en gRPC-klient eller veta något om gRPC.
  • RESTful-API:er skapas automatiskt från gRPC-tjänster genom att .proto filen kommenteras med HTTP-metadata.
  • Tillåter att en app stöder både gRPC- och JSON-webb-API:er utan att duplicera arbetet med att skapa separata tjänster för båda.

.NET har inbyggt stöd för att skapa JSON-webb-API:er från gRPC-tjänster. Mer information finns i gRPC JSON-omkodning i ASP.NET Core gRPC-appar.

Anmärkning

gRPC JSON-omkodning kräver .NET 7 eller senare.

Ytterligare resurser