Share via


IDownstreamApi.PostForUserAsync Method

Definition

Overloads

PostForUserAsync<TInput,TOutput>(String, TInput, Action<DownstreamApiOptionsReadOnlyHttpMethod>, ClaimsPrincipal, CancellationToken)

Calls, using Post, a downstream API with some input data and returning data. By default the input data is serialized in JSON and the returned data is deserialized from JSON but you can provide your own serializer and your own deserializer in the action you pass-in through the downstreamApiOptionsOverride parameter.

PostForUserAsync<TInput>(String, TInput, Action<DownstreamApiOptionsReadOnlyHttpMethod>, ClaimsPrincipal, CancellationToken)

Calls, using Post, a downstream API with some input data . By default the input data is serialized in JSON but you can provide your own serializer in the action you pass-in through the downstreamApiOptionsOverride parameter.

PostForUserAsync<TInput,TOutput>(String, TInput, Action<DownstreamApiOptionsReadOnlyHttpMethod>, ClaimsPrincipal, CancellationToken)

Calls, using Post, a downstream API with some input data and returning data. By default the input data is serialized in JSON and the returned data is deserialized from JSON but you can provide your own serializer and your own deserializer in the action you pass-in through the downstreamApiOptionsOverride parameter.

public System.Threading.Tasks.Task<TOutput?> PostForUserAsync<TInput,TOutput> (string? serviceName, TInput input, Action<Microsoft.Identity.Abstractions.DownstreamApiOptionsReadOnlyHttpMethod>? downstreamApiOptionsOverride = default, System.Security.Claims.ClaimsPrincipal? user = default, System.Threading.CancellationToken cancellationToken = default) where TOutput : class;
abstract member PostForUserAsync : string * 'Input * Action<Microsoft.Identity.Abstractions.DownstreamApiOptionsReadOnlyHttpMethod> * System.Security.Claims.ClaimsPrincipal * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Output (requires 'Output : null)> (requires 'Output : null)
Public Function PostForUserAsync(Of TInput, TOutput) (serviceName As String, input As TInput, Optional downstreamApiOptionsOverride As Action(Of DownstreamApiOptionsReadOnlyHttpMethod) = Nothing, Optional user As ClaimsPrincipal = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of TOutput)

Type Parameters

TInput

Generic input type.

TOutput

Generic output type.

Parameters

serviceName
String

Name of the service describing the downstream API. There can be several configuration named sections mapped to a DownstreamApiOptions, each for one downstream API. You can pass-in null, but in that case downstreamApiOptionsOverride needs to be set.

input
TInput

Data sent to the downstream web API, through the body or the HTTP request.

downstreamApiOptionsOverride
Action<DownstreamApiOptionsReadOnlyHttpMethod>

[Optional] Overrides the options proposed in the configuration described by serviceName.

user
ClaimsPrincipal

[Optional] Claims representing a user. This is useful in platforms like Blazor or Azure Signal R, where the HttpContext is not available. In other platforms, the library will find the user from the HttpContext.

cancellationToken
CancellationToken

Returns

Task<TOutput>

The value returned by the downstream web API.

Examples

var result = await _downstreamApi.PostForUserAsync<MyItem, IEnumerable<MyItem>>(
       "MyService",
       myItem,
       options =>
       {
         options.RelativePath = $"api/todolist/{myItem.Id}";
       });

Applies to

PostForUserAsync<TInput>(String, TInput, Action<DownstreamApiOptionsReadOnlyHttpMethod>, ClaimsPrincipal, CancellationToken)

Calls, using Post, a downstream API with some input data . By default the input data is serialized in JSON but you can provide your own serializer in the action you pass-in through the downstreamApiOptionsOverride parameter.

public System.Threading.Tasks.Task PostForUserAsync<TInput> (string? serviceName, TInput input, Action<Microsoft.Identity.Abstractions.DownstreamApiOptionsReadOnlyHttpMethod>? downstreamApiOptionsOverride = default, System.Security.Claims.ClaimsPrincipal? user = default, System.Threading.CancellationToken cancellationToken = default);
abstract member PostForUserAsync : string * 'Input * Action<Microsoft.Identity.Abstractions.DownstreamApiOptionsReadOnlyHttpMethod> * System.Security.Claims.ClaimsPrincipal * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function PostForUserAsync(Of TInput) (serviceName As String, input As TInput, Optional downstreamApiOptionsOverride As Action(Of DownstreamApiOptionsReadOnlyHttpMethod) = Nothing, Optional user As ClaimsPrincipal = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task

Type Parameters

TInput

Generic input type.

Parameters

serviceName
String

Name of the service describing the downstream API. There can be several configuration named sections mapped to a DownstreamApiOptions, each for one downstream API. You can pass-in null, but in that case downstreamApiOptionsOverride needs to be set.

input
TInput

Data sent to the downstream web API, through the body or the HTTP request.

downstreamApiOptionsOverride
Action<DownstreamApiOptionsReadOnlyHttpMethod>

[Optional] Overrides the options proposed in the configuration described by serviceName.

user
ClaimsPrincipal

[Optional] Claims representing a user. This is useful in platforms like Blazor or Azure Signal R, where the HttpContext is not available. In other platforms, the library will find the user from the HttpContext.

cancellationToken
CancellationToken

Returns

The value returned by the downstream web API.

Examples

await _downstreamApi.PostForUserAsync<MyItem>(
      "MyService",
      myItem,
      options =>
      {
        options.RelativePath = $"api/todolist/{myItem.Id}";
      });

Applies to