Class HttpClientResultExtensions

Namespace
REslava.Result.Http
Assembly
REslava.Result.Http.dll

Extension methods on HttpClient that return Result<TValue> (or Result) instead of throwing on HTTP errors or network failures.

public static class HttpClientResultExtensions
Inheritance
HttpClientResultExtensions
Inherited Members

Remarks

HTTP 4xx/5xx responses are mapped to typed domain errors via the default REslava.Result.Http.HttpStatusCodeMapper or a custom StatusCodeMapper.

Network-level failures (HttpRequestException) and timeouts (TaskCanceledException) are wrapped in ExceptionError.

Methods

DeleteResult(HttpClient, string, HttpResultOptions?, CancellationToken)

Sends a DELETE request. Returns Ok() on success (2xx), or a typed error result on failure.

public static Task<Result> DeleteResult(this HttpClient client, string requestUri, HttpResultOptions? options = null, CancellationToken cancellationToken = default)

Parameters

client HttpClient
requestUri string
options HttpResultOptions
cancellationToken CancellationToken

Returns

Task<Result>

DeleteResult<T>(HttpClient, string, HttpResultOptions?, CancellationToken)

Sends a DELETE request and deserializes the response body as T.

public static Task<Result<T>> DeleteResult<T>(this HttpClient client, string requestUri, HttpResultOptions? options = null, CancellationToken cancellationToken = default)

Parameters

client HttpClient
requestUri string
options HttpResultOptions
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

GetResult<T>(HttpClient, string, HttpResultOptions?, CancellationToken)

Sends a GET request and deserializes the response body as T.

public static Task<Result<T>> GetResult<T>(this HttpClient client, string requestUri, HttpResultOptions? options = null, CancellationToken cancellationToken = default)

Parameters

client HttpClient
requestUri string
options HttpResultOptions
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

GetResult<T>(HttpClient, Uri, HttpResultOptions?, CancellationToken)

Sends a GET request and deserializes the response body as T.

public static Task<Result<T>> GetResult<T>(this HttpClient client, Uri requestUri, HttpResultOptions? options = null, CancellationToken cancellationToken = default)

Parameters

client HttpClient
requestUri Uri
options HttpResultOptions
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

PostResult<TBody, TResponse>(HttpClient, string, TBody, HttpResultOptions?, CancellationToken)

Sends a POST request with a JSON-serialized body and deserializes the response body as TResponse.

public static Task<Result<TResponse>> PostResult<TBody, TResponse>(this HttpClient client, string requestUri, TBody body, HttpResultOptions? options = null, CancellationToken cancellationToken = default)

Parameters

client HttpClient
requestUri string
body TBody
options HttpResultOptions
cancellationToken CancellationToken

Returns

Task<Result<TResponse>>

Type Parameters

TBody
TResponse

PutResult<TBody, TResponse>(HttpClient, string, TBody, HttpResultOptions?, CancellationToken)

Sends a PUT request with a JSON-serialized body and deserializes the response body as TResponse.

public static Task<Result<TResponse>> PutResult<TBody, TResponse>(this HttpClient client, string requestUri, TBody body, HttpResultOptions? options = null, CancellationToken cancellationToken = default)

Parameters

client HttpClient
requestUri string
body TBody
options HttpResultOptions
cancellationToken CancellationToken

Returns

Task<Result<TResponse>>

Type Parameters

TBody
TResponse