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. |
WithExceptionCustomizer(Func<RpcException, RpcException>)
Constructs a new ApiCall<TRequest, TResponse> that applies an exception customizer to both the synchronous and asynchronous calls.
Declaration
public ApiCall<TRequest, TResponse> WithExceptionCustomizer(Func<RpcException, RpcException> customizer)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Func<RpcException, RpcException> | customizer | The exception customizer to apply. Must not be null. |
Returns
| Type | Description |
|---|---|
| ApiCall<TRequest, TResponse> | A new ApiCall<TRequest, TResponse> with the exception customizer applied. |
Remarks
customizer will be passed any exception that is thrown by the underlying API call.
If it returns null, the original exception is retained and passed on. Otherwise, the returned exception is
thrown in place of the original one.
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.