Table of Contents

Class ApizrRequestOptionsBuilder

Namespace
Apizr.Configuring.Request
Assembly
Apizr.dll

Builder options available at request level

public class ApizrRequestOptionsBuilder : IApizrRequestOptionsBuilder, IApizrRequestOptionsBuilder<IApizrRequestOptions, IApizrRequestOptionsBuilder>, IApizrRequestOptionsBuilderBase<IApizrRequestOptions, IApizrRequestOptionsBuilder>, IApizrGlobalSharedOptionsBuilderBase<IApizrRequestOptions, IApizrRequestOptionsBuilder>, IApizrRequestOptionsBuilderBase, IApizrGlobalSharedOptionsBuilderBase
Inheritance
ApizrRequestOptionsBuilder
Implements
Inherited Members
Extension Methods

Constructors

ApizrRequestOptionsBuilder(ApizrRequestOptions)

public ApizrRequestOptionsBuilder(ApizrRequestOptions options)

Parameters

options ApizrRequestOptions

Fields

Options

protected readonly ApizrRequestOptions Options

Field Value

ApizrRequestOptions

Methods

WithCacheClearing(bool)

Tells if you want to clear the potential cached data before requesting

public IApizrRequestOptionsBuilder WithCacheClearing(bool clearCache)

Parameters

clearCache bool

Clear cache or not

Returns

IApizrRequestOptionsBuilder

WithCaching(CacheMode, TimeSpan?, bool)

Cache data.

public IApizrRequestOptionsBuilder WithCaching(CacheMode mode = CacheMode.FetchOrGet, TimeSpan? lifeSpan = null, bool shouldInvalidateOnError = false)

Parameters

mode CacheMode

FetchOrGet returns fresh data when request succeed otherwise cached one, where GetOrFetch returns cached data if we get some otherwise fresh one

lifeSpan TimeSpan?

This specific caching lifetime (Default: null = cache handler lifetime

shouldInvalidateOnError bool

Should invalidate on error (Default: false)

Returns

IApizrRequestOptionsBuilder

WithCancellation(CancellationToken)

Set the cancellation token

public IApizrRequestOptionsBuilder WithCancellation(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

The cancellation token

Returns

IApizrRequestOptionsBuilder

WithExCatching(Action<ApizrException>, bool, ApizrDuplicateStrategy)

Catch potential exceptions

[Obsolete("Catching an exception by an Action is now replaced by a Func returning a handled boolean flag")]
public IApizrRequestOptionsBuilder WithExCatching(Action<ApizrException> onException, bool letThrowOnException = true, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Replace)

Parameters

onException Action<ApizrException>

The exception callback

letThrowOnException bool

Let throw potential exception (default: true)

strategy ApizrDuplicateStrategy

The duplicate strategy if there's another callback already (default: Replace)

Returns

IApizrRequestOptionsBuilder

WithExCatching(Func<ApizrException, bool>, bool, ApizrDuplicateStrategy)

Catch potential exceptions

public IApizrRequestOptionsBuilder WithExCatching(Func<ApizrException, bool> onException, bool letThrowOnHandledException = true, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Replace)

Parameters

onException Func<ApizrException, bool>

The exception callback returning handled boolean flag

letThrowOnHandledException bool

Let throw potential exception even if it's handled (default: true)

strategy ApizrDuplicateStrategy

The duplicate strategy if there's another callback already (default: Replace)

Returns

IApizrRequestOptionsBuilder

WithExCatching(Func<ApizrException, Task<bool>>, bool, ApizrDuplicateStrategy)

Catch potential exceptions

public IApizrRequestOptionsBuilder WithExCatching(Func<ApizrException, Task<bool>> onException, bool letThrowOnHandledException = true, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Replace)

Parameters

onException Func<ApizrException, Task<bool>>

The exception callback returning handled boolean flag Task

letThrowOnHandledException bool

Let throw potential exception even if it's handled (default: true)

strategy ApizrDuplicateStrategy

The duplicate strategy if there's another callback already (default: Replace)

Returns

IApizrRequestOptionsBuilder

WithExCatching<TResult>(Action<ApizrException<TResult>>, bool, ApizrDuplicateStrategy)

Catch potential exceptions

[Obsolete("Catching an exception by an Action is now replaced by a Func returning a handled boolean flag")]
public IApizrRequestOptionsBuilder WithExCatching<TResult>(Action<ApizrException<TResult>> onException, bool letThrowOnException = true, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Replace)

Parameters

onException Action<ApizrException<TResult>>

The exception callback

letThrowOnException bool

Let throw potential exception (default: true)

strategy ApizrDuplicateStrategy

The duplicate strategy if there's another callback already (default: Replace)

Returns

IApizrRequestOptionsBuilder

Type Parameters

TResult

WithExCatching<TResult>(Func<ApizrException<TResult>, bool>, bool, ApizrDuplicateStrategy)

Catch potential exceptions

public IApizrRequestOptionsBuilder WithExCatching<TResult>(Func<ApizrException<TResult>, bool> onException, bool letThrowOnHandledException = true, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Replace)

Parameters

onException Func<ApizrException<TResult>, bool>

The exception callback returning handled boolean flag

letThrowOnHandledException bool

Let throw potential exception even if it's handled (default: true)

strategy ApizrDuplicateStrategy

The duplicate strategy if there's another callback already (default: Replace)

Returns

IApizrRequestOptionsBuilder

Type Parameters

TResult

WithExCatching<TResult>(Func<ApizrException<TResult>, Task<bool>>, bool, ApizrDuplicateStrategy)

Catch potential exceptions

public IApizrRequestOptionsBuilder WithExCatching<TResult>(Func<ApizrException<TResult>, Task<bool>> onException, bool letThrowOnHandledException = true, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Replace)

Parameters

onException Func<ApizrException<TResult>, Task<bool>>

The exception callback returning a handled boolean flag Task

letThrowOnHandledException bool

Let throw potential exception even if it's handled (default: true)

strategy ApizrDuplicateStrategy

The duplicate strategy if there's another callback already (default: Replace)

Returns

IApizrRequestOptionsBuilder

Type Parameters

TResult

WithExCatching<THandler>(THandler, bool, ApizrDuplicateStrategy)

Catch potential exceptions

public IApizrRequestOptionsBuilder WithExCatching<THandler>(THandler exceptionHandler, bool letThrowOnHandledException = true, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Replace) where THandler : IApizrExceptionHandler

Parameters

exceptionHandler THandler

The exception handler called back and returning handled boolean flag Task

letThrowOnHandledException bool

Let throw potential exception even if it's handled (default: true)

strategy ApizrDuplicateStrategy

The duplicate strategy if there's another callback already (default: Replace)

Returns

IApizrRequestOptionsBuilder

Type Parameters

THandler

WithHandlerParameter(string, object)

Set some parameters passed through all delegating handlers

public IApizrRequestOptionsBuilder WithHandlerParameter(string key, object value)

Parameters

key string

The parameter's key

value object

The parameter's value

Returns

IApizrRequestOptionsBuilder

WithHeaders(IList<string>, ApizrDuplicateStrategy)

Add some headers to the request

public IApizrRequestOptionsBuilder WithHeaders(IList<string> headers, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Add)

Parameters

headers IList<string>

Headers to add to the request

strategy ApizrDuplicateStrategy

The duplicate strategy if there's any other already (default: Add)

Returns

IApizrRequestOptionsBuilder

WithLoggedHeadersRedactionNames(IEnumerable<string>, ApizrDuplicateStrategy)

Sets the collection of HTTP headers names for which values should be redacted before logging.

public IApizrRequestOptionsBuilder WithLoggedHeadersRedactionNames(IEnumerable<string> redactedLoggedHeaderNames, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Add)

Parameters

redactedLoggedHeaderNames IEnumerable<string>

The collection of HTTP headers names for which values should be redacted before logging.

strategy ApizrDuplicateStrategy

The duplicate strategy if there's any other names already (default: Add)

Returns

IApizrRequestOptionsBuilder

WithLoggedHeadersRedactionRule(Func<string, bool>, ApizrDuplicateStrategy)

Sets the Func<T, TResult> which determines whether to redact the HTTP header value before logging.

public IApizrRequestOptionsBuilder WithLoggedHeadersRedactionRule(Func<string, bool> shouldRedactHeaderValue, ApizrDuplicateStrategy strategy = ApizrDuplicateStrategy.Add)

Parameters

shouldRedactHeaderValue Func<string, bool>

The Func<T, TResult> which determines whether to redact the HTTP header value before logging

strategy ApizrDuplicateStrategy

The duplicate strategy if there's any other names already (default: Add)

Returns

IApizrRequestOptionsBuilder

WithLogging(HttpTracerMode, HttpMessageParts, params LogLevel[])

Define tracer mode, http traffic tracing verbosity and log levels (could be defined with LogAttribute)

public IApizrRequestOptionsBuilder WithLogging(HttpTracerMode httpTracerMode = HttpTracerMode.Everything, HttpMessageParts trafficVerbosity = HttpMessageParts.All, params LogLevel[] logLevels)

Parameters

httpTracerMode HttpTracerMode
trafficVerbosity HttpMessageParts

Http traffic tracing verbosity (default: All)

logLevels LogLevel[]

Log levels to apply while writing (default: Information)

Returns

IApizrRequestOptionsBuilder

WithOperationTimeout(TimeSpan)

Set a timeout to the operation (overall request tries)

public IApizrRequestOptionsBuilder WithOperationTimeout(TimeSpan timeout)

Parameters

timeout TimeSpan

The operation timeout

Returns

IApizrRequestOptionsBuilder

WithRequestTimeout(TimeSpan)

Set a timeout to the request (each request try)

public IApizrRequestOptionsBuilder WithRequestTimeout(TimeSpan timeout)

Parameters

timeout TimeSpan

The request timeout

Returns

IApizrRequestOptionsBuilder

WithResilienceContextOptions(Action<IApizrResilienceContextOptionsBuilder>)

Set some options to the resilience context

public IApizrRequestOptionsBuilder WithResilienceContextOptions(Action<IApizrResilienceContextOptionsBuilder> contextOptionsBuilder)

Parameters

contextOptionsBuilder Action<IApizrResilienceContextOptionsBuilder>

The resilience context options builder

Returns

IApizrRequestOptionsBuilder

WithResiliencePipelineKeys(string[], ApizrDuplicateStrategy)

Apply some resilience strategies by getting pipelines from registry with key matching.

public IApizrRequestOptionsBuilder WithResiliencePipelineKeys(string[] resiliencePipelineKeys, ApizrDuplicateStrategy duplicateStrategy = ApizrDuplicateStrategy.Add)

Parameters

resiliencePipelineKeys string[]

Resilience pipeline keys from the registry.

duplicateStrategy ApizrDuplicateStrategy

The duplicate strategy if there's any other names already (default: Add)

Returns

IApizrRequestOptionsBuilder

WithResilienceProperty<TValue>(ResiliencePropertyKey<TValue>, TValue)

Set some resilience properties to the resilience context

public IApizrRequestOptionsBuilder WithResilienceProperty<TValue>(ResiliencePropertyKey<TValue> key, TValue valueFactory)

Parameters

key ResiliencePropertyKey<TValue>

The resilience property's key

valueFactory TValue

Returns

IApizrRequestOptionsBuilder

Type Parameters

TValue