/// <summary> /// Use response caching middleware which get from cache or get from remote and cache responses. /// </summary> /// <param name="builder">Builder instance</param> /// <param name="configure">Action to configure caching options.</param> public static FluentHttpClientBuilder UseResponseCaching(this FluentHttpClientBuilder builder, Action <ResponseCacheHttpMiddlewareOptions> configure) { var options = new ResponseCacheHttpMiddlewareOptions(); configure?.Invoke(options); return(builder.UseResponseCaching(options)); }
/// <summary> /// Use logger middleware which logs out going requests and incoming responses. /// </summary> /// <param name="builder">Builder instance</param> /// <param name="configure">Action to configure logging options.</param> public static FluentHttpClientBuilder UseLogging(this FluentHttpClientBuilder builder, Action <LoggerHttpMiddlewareOptions> configure) { var options = new LoggerHttpMiddlewareOptions(); configure?.Invoke(options); return(builder.UseLogging(options)); }
/// <summary> /// Use timer middleware which measures how long the request takes. /// </summary> /// <param name="builder">Builder instance</param> /// <param name="configure">Action to configure timer options.</param> public static FluentHttpClientBuilder UseTimer(this FluentHttpClientBuilder builder, Action <TimerHttpMiddlewareOptions>?configure) { var options = new TimerHttpMiddlewareOptions(); configure?.Invoke(options); return(builder.UseTimer(options)); }
/// <inheritdoc /> public IFluentHttpClient Add(FluentHttpClientBuilder clientBuilder) { if (clientBuilder == null) { throw new ArgumentNullException(nameof(clientBuilder)); } var options = clientBuilder.Build(); return(Add(options)); }
/// <summary> /// Use logger middleware which logs out going requests and incoming responses. /// </summary> /// <param name="builder">Builder instance</param> /// <param name="options"></param> public static FluentHttpClientBuilder UseLogging(this FluentHttpClientBuilder builder, LoggerHttpMiddlewareOptions options = null) => builder.UseMiddleware <LoggerHttpMiddleware>(options ?? new LoggerHttpMiddlewareOptions());
/// <summary> /// Use timer middleware which measures how long the request takes. /// </summary> /// <param name="builder">Builder instance</param> /// <param name="options">Options to specify for the timer options.</param> public static FluentHttpClientBuilder UseTimer(this FluentHttpClientBuilder builder, TimerHttpMiddlewareOptions options = null) => builder.UseMiddleware <TimerHttpMiddleware>(options ?? new TimerHttpMiddlewareOptions());
/// <summary> /// Use response caching middleware which get from cache or get from remote and cache responses. /// </summary> /// <param name="builder">Builder instance</param> /// <param name="options"></param> public static FluentHttpClientBuilder UseResponseCaching(this FluentHttpClientBuilder builder, ResponseCacheHttpMiddlewareOptions options = null) => builder.UseMiddleware <ResponseCacheHttpMiddleware>(options ?? new ResponseCacheHttpMiddlewareOptions());