Class ApiCall<TRequest, TResponse> (4.0.0)

public sealed class ApiCall<TRequest, TResponse>
    where TRequest : class, IMessage<TRequest> where TResponse : class, IMessage<TResponse>

Bridge between an RPC method (with synchronous and asynchronous variants) and higher level abstractions, applying call settings as required.

Inheritance

Object > ApiCall<TRequest, TResponse>

Namespace

Google.Api.Gax.Grpc

Assembly

Google.Api.Gax.Grpc.dll

Type Parameters

NameDescription
TRequest

RPC request type

TResponse

RPC response type

Properties

BaseCallSettings

public CallSettings BaseCallSettings { get; }

The base CallSettings for this API call; these can be further overridden by providing a CallSettings to Async(TRequest, CallSettings) or Sync(TRequest, CallSettings).

Property Value
TypeDescription
CallSettings

Methods

Async(TRequest, CallSettings)

public Task<TResponse> Async(TRequest request, CallSettings perCallCallSettings)

Performs an RPC call asynchronously.

Parameters
NameDescription
requestTRequest

The RPC request.

perCallCallSettingsCallSettings

The call settings to apply to this specific call, overriding defaults where necessary.

Returns
TypeDescription
Task<TResponse>

A task representing the asynchronous operation. The result of the completed task will be the RPC response.

Sync(TRequest, CallSettings)

public TResponse Sync(TRequest request, CallSettings perCallCallSettings)

Performs an RPC call synchronously.

Parameters
NameDescription
requestTRequest

The RPC request.

perCallCallSettingsCallSettings

The call settings to apply to this specific call, overriding defaults where necessary.

Returns
TypeDescription
TResponse

The RPC response.

WithCallSettingsOverlay(Func<TRequest, CallSettings>)

public ApiCall<TRequest, TResponse> WithCallSettingsOverlay(Func<TRequest, CallSettings> callSettingsOverlayFn)

Constructs a new ApiCall<TRequest, TResponse> that applies an overlay to the underlying CallSettings. If a value exists in both the original and the overlay, the overlay takes priority.

Parameter
NameDescription
callSettingsOverlayFnFunc<TRequest, CallSettings>

Function that builds the overlay CallSettings.

Returns
TypeDescription
ApiCall<TRequest, TResponse>

A new ApiCall<TRequest, TResponse> with the overlay applied.

WithExtractedGoogleRequestParam(RoutingHeaderExtractor<TRequest>)

public ApiCall<TRequest, TResponse> WithExtractedGoogleRequestParam(RoutingHeaderExtractor<TRequest> extractor)

Constructs a new ApiCall<TRequest, TResponse> that applies an x-goog-request-params header to each request, using the RoutingHeaderExtractor<TRequest>.

Parameter
NameDescription
extractorRoutingHeaderExtractor<TRequest>

The RoutingHeaderExtractor<TRequest> that extracts the value of the routing header from a request.

Returns
TypeDescription
ApiCall<TRequest, TResponse>

A new ApiCall<TRequest, TResponse> which applies the header on each request.

Remarks

Values produced by the function are URL-encoded.

WithGoogleRequestParam(String, Func<TRequest, String>)

public ApiCall<TRequest, TResponse> WithGoogleRequestParam(string parameterName, Func<TRequest, string> valueSelector)

Constructs a new ApiCall<TRequest, TResponse> that applies an x-goog-request-params header to each request, using the specified parameter name and a value derived from the request.

Parameters
NameDescription
parameterNameString

The parameter name in the header. Must not be null.

valueSelectorFunc<TRequest, String>

A function to call on each request, to determine the value to specify in the header. The parameter must not be null, but may return null.

Returns
TypeDescription
ApiCall<TRequest, TResponse>

A new ApiCall<TRequest, TResponse> which applies the header on each request.

Remarks

Values produced by the function are URL-encoded; it is expected that parameterName is already URL-encoded.