gRPC-Web support for ASP.NET Core
$ dotnet add package Grpc.AspNetCore.WebGrpc.AspNetCore.Web provides middleware that enables ASP.NET Core gRPC services to accept gRPC-Web calls.
In Program.cs:
using GrpcGreeter.Services;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddGrpc();
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseRouting();
app.UseGrpcWeb(new GrpcWebOptions { DefaultEnabled = true });
app.MapGrpcService<GreeterService>();
app.Run();
gRPC-Web can be enabled for all gRPC services by setting GrpcWebOptions.DefaultEnabled = true, or enabled on individual services with EnableGrpcWeb():
app.MapGrpcService<GreeterService>().EnableGrpcWeb();
Traditional gRPC over HTTP/2 supports streaming in all directions. gRPC-Web offers limited support for streaming:
When using gRPC-Web, we only recommend the use of unary methods and server streaming methods.