public static void AddCorrelationId(this IHttpClientBuilder client) { if (client == null) { throw new ArgumentNullException(nameof(client)); } client.AddInterceptor <CorrelationIdInterceptor>(); }
public static IHttpClientBuilder AddPolicyInterceptor( this IHttpClientBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.AddTransient <PollyInterceptor>(); builder.AddInterceptor <PollyInterceptor>(); return(builder); }
public static IHttpClientBuilder EnableJWTPropagation(this IHttpClientBuilder builder) { builder.AddInterceptor <JWTPropagationInterceptor>(); builder.Services.TryAddSingleton <JWTPropagationInterceptor>(); builder.Services.AddHttpContextAccessor(); //builder.Services.AddTransient<IConfigureOptions<GrpcClientFactoryOptions>>(services => //{ // return new ConfigureNamedOptions<GrpcClientFactoryOptions>(builder.Name, options => // { // options.Interceptors.Add(services.GetRequiredService<JWTPropagationInterceptor>()); // }); //}); return(builder); }
/// <summary> /// Adds an additional interceptor from the dependency injection container for a gRPC client. /// </summary> /// <typeparam name="TInterceptor">The type of the <see cref="Interceptor"/>.</typeparam> /// <param name="builder">The <see cref="IHttpClientBuilder"/>.</param> /// <returns>An <see cref="IHttpClientBuilder"/> that can be used to configure the client.</returns> public static IHttpClientBuilder AddInterceptor <TInterceptor>(this IHttpClientBuilder builder) where TInterceptor : Interceptor { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddInterceptor(serviceProvider => { return(serviceProvider.GetRequiredService <TInterceptor>()); }); return(builder); }
public static void AddExponentialBackoff(this IHttpClientBuilder client, int retryCount, int retryInterval = 0, bool retryForever = false) { if (client == null) { throw new ArgumentNullException(nameof(client)); } client.AddInterceptor(services => { var interceptor = services.GetRequiredService <ExponentialBackoffInterceptor>(); interceptor.RetryCount = retryCount; interceptor.RetryInterval = retryInterval; interceptor.RetryForever = retryForever; return(interceptor); }); }
/// <summary> /// Adds a delegate that will be used to create an additional inteceptor for a gRPC client. /// The interceptor scope is <see cref="InterceptorScope.Channel"/>. /// </summary> /// <param name="builder">The <see cref="IHttpClientBuilder"/>.</param> /// <param name="configureInvoker">A delegate that is used to create an <see cref="Interceptor"/>.</param> /// <returns>An <see cref="IHttpClientBuilder"/> that can be used to configure the client.</returns> public static IHttpClientBuilder AddInterceptor(this IHttpClientBuilder builder, Func <IServiceProvider, Interceptor> configureInvoker) { return(builder.AddInterceptor(InterceptorScope.Channel, configureInvoker)); }
/// <summary> /// Adds an additional interceptor from the dependency injection container for a gRPC client. /// The interceptor scope is <see cref="InterceptorScope.Channel"/>. /// </summary> /// <typeparam name="TInterceptor">The type of the <see cref="Interceptor"/>.</typeparam> /// <param name="builder">The <see cref="IHttpClientBuilder"/>.</param> /// <returns>An <see cref="IHttpClientBuilder"/> that can be used to configure the client.</returns> public static IHttpClientBuilder AddInterceptor <TInterceptor>(this IHttpClientBuilder builder) where TInterceptor : Interceptor { return(builder.AddInterceptor <TInterceptor>(InterceptorScope.Channel)); }
/// <summary> /// Register interceptors for gRPC /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IHttpClientBuilder AddgGRPCInterceptor(this IHttpClientBuilder builder) { builder.AddInterceptor <GRPCServiceInterceptor>(); return(builder); }