Class ApiCall<TRequest, TResponse>
Bridge between an RPC method (with synchronous and asynchronous variants) and higher level abstractions, applying call settings as required.
Inheritance
Inherited Members
Namespace: Google.Api.Gax.Grpc
Assembly: Google.Api.Gax.Grpc.dll
Syntax
public sealed class ApiCall<TRequest, TResponse>
where TRequest : class, IMessage<TRequest> where TResponse : class, IMessage<TResponse>
Type Parameters
Name | Description |
---|---|
TRequest | RPC request type |
TResponse | RPC response type |
Properties
BaseCallSettings
The base CallSettings for this API call; these can be further overridden by providing
a CallSettings
to Async(TRequest, CallSettings) or Sync(TRequest, CallSettings).
Declaration
public CallSettings BaseCallSettings { get; }
Property Value
Type | Description |
---|---|
CallSettings |
Methods
Async(TRequest, CallSettings)
Performs an RPC call asynchronously.
Declaration
public Task<TResponse> Async(TRequest request, CallSettings perCallCallSettings)
Parameters
Type | Name | Description |
---|---|---|
TRequest | request | The RPC request. |
CallSettings | perCallCallSettings | The call settings to apply to this specific call, overriding defaults where necessary. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<TResponse> | A task representing the asynchronous operation. The result of the completed task will be the RPC response. |
Sync(TRequest, CallSettings)
Performs an RPC call synchronously.
Declaration
public TResponse Sync(TRequest request, CallSettings perCallCallSettings)
Parameters
Type | Name | Description |
---|---|---|
TRequest | request | The RPC request. |
CallSettings | perCallCallSettings | The call settings to apply to this specific call, overriding defaults where necessary. |
Returns
Type | Description |
---|---|
TResponse | The RPC response. |
WithCallSettingsOverlay(Func<TRequest, CallSettings>)
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.
Declaration
public ApiCall<TRequest, TResponse> WithCallSettingsOverlay(Func<TRequest, CallSettings> callSettingsOverlayFn)
Parameters
Type | Name | Description |
---|---|---|
System.Func<TRequest, CallSettings> | callSettingsOverlayFn | Function that builds the overlay CallSettings. |
Returns
Type | Description |
---|---|
ApiCall<TRequest, TResponse> | A new ApiCall<TRequest, TResponse> with the overlay applied. |
WithGoogleRequestParam(String, Func<TRequest, String>)
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.
Declaration
public ApiCall<TRequest, TResponse> WithGoogleRequestParam(string parameterName, Func<TRequest, string> valueSelector)
Parameters
Type | Name | Description |
---|---|---|
System.String | parameterName | The parameter name in the header. Must not be null. |
System.Func<TRequest, System.String> | valueSelector | 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
Type | Description |
---|---|
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.