gRPC-web и клиенты ASP.NET Core 3+¶
Теперь перейдём к клиентам с ASP.NET Core версии не ниже 3. Для них настройка выполняется немного по-другому, с использованием фабрики.
Сперва установим NuGet-пакет Grpc.Net.Client.Web, затем добавим следующее:
public static IServiceCollection AddCountryServiceGrpcWebAspNetCoreClient(
this IServiceCollection services,
ILoggerFactory loggerFactory,
string countryServiceUri)
{
services.AddGrpcClient<CountryServiceClient>(o =>
{
o.Address = new Uri(countryServiceUri);
})
//Добавляем GrpcWebHandler здесь
.ConfigurePrimaryHttpMessageHandler(() => new GrpcWebHandler(new HttpClientHandler()))
.AddInterceptor(() => new TracerInterceptor(loggerFactory.CreateLogger<TracerInterceptor>()))
.ConfigureChannel(o =>
{
o.CompressionProviders = new List<ICompressionProvider>
{
new BrotliCompressionProvider()
};
o.MaxReceiveMessageSize = 6291456;
o.MaxSendMessageSize = 6291456;
});
return services;
}
От меня
Как уже было здесь и здесь, я оформляю код в виде метода расширения внутри проекта CountryWiki.DAL.
Здесь мы перенесли назначение обработчика GrpcWebHandler в метод расширения ConfigurePrimaryHttpMessageHandler, а затем продолжили цепочку, как раньше.
Последнее обновление :
17 июля 2023 г.
Дата создания : 9 июля 2023 г.
Дата создания : 9 июля 2023 г.