RestClient class abstract

Abstract client that calls remove endpoints using HTTP/REST protocol.

Configuration parameters

  • base_route: base route for remote URI
  • connection:
    • discovery_key: (optional) a key to retrieve the connection from IDiscovery
    • protocol: connection protocol: http or https
    • host: host name or IP address
    • port: port number
    • uri: resource URI or connection string with all parameters in it
  • options:
    • retries: number of retries (default: 3)
    • connect_timeout: connection timeout in milliseconds (default: 10 sec)
    • timeout: invocation timeout in milliseconds (default: 10 sec)
    • correlation_id place for adding correalationId, query - in query string, headers - in headers, both - in query and headers (default: query)

References

  • *:logger:*:*:1.0 (optional) ILogger components to pass log messages
  • *:counters:*:*:1.0 (optional) ICounters components to pass collected measurements
  • *:tracer:*:*:1.0 (optional) ICounters components to pass collected measurements
  • *:discovery:*:*:1.0 (optional) IDiscovery services to resolve connection

See RestService See CommandableHttpService

Example

class MyRestClient extends RestClient implements IMyClient {
   ...

    Future<MyData> getData(String? correlationId, String id) async {
       var timing = instrument(correlationId, 'myclient.get_data');
      try{
        var result = await call('get', '/get_data' correlationId, { id: id }, null);
        timing.endTiming();
        return result;
      } catch (err) {
           timing.endTiming();
           rethrow;
       });
   }
   ...
}

var client = MyRestClient();
client.configure(ConfigParams.fromTuples([
    'connection.protocol', 'http',
    'connection.host', 'localhost',
    'connection.port', 8080
]));

var result = await client.getData('123', '1');
  ...
Implementers

Constructors

RestClient()

Properties

baseRoute String?
The base route.
getter/setter pair
client ↔ Client?
The HTTP client.
getter/setter pair
connectionResolver HttpConnectionResolver
The connection resolver.
getter/setter pair
connectTimeout int
The connection timeout in milliseconds.
getter/setter pair
correlationIdLocation String
getter/setter pair
counters ↔ CompositeCounters
The performance counters.
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
headers Map<String, String>
The default headers to be added to every request.
getter/setter pair
logger ↔ CompositeLogger
The logger.
getter/setter pair
options ↔ ConfigParams
The configuration options.
getter/setter pair
retries int
The number of retries.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
timeout int
The invocation timeout in milliseconds.
getter/setter pair
tracer ↔ CompositeTracer
The tracer.
getter/setter pair
uri String?
The remote service uri which is calculated on open.
getter/setter pair

Methods

addCorrelationId(Map<String, String>? params, String? correlationId) Map<String, String>
Adds a correlation id (correlation_id) to invocation parameter map.
addFilterParams(Map<String, String>? params, FilterParams? filter) Map<String, String>
Adds filter parameters (with the same name as they defined) to invocation parameter map.
addPagingParams(Map<String, String>? params, PagingParams? paging) Map<String, String>
Adds paging parameters (skip, take, total) to invocation parameter map.
call(String method, String route, String? correlationId, Map<String, String> params, [dynamic data]) Future
Calls a remote method via HTTP/REST protocol.
close(String? correlationId) Future
Closes component and frees used resources.
configure(ConfigParams config) → void
Configures component by passing configuration parameters.
createRequestRoute(String route) String
instrument(String? correlationId, String name) InstrumentTiming
Adds instrumentation to log calls and measure call time. It returns a Timing object that is used to end the time measurement.
instrumentError(String? correlationId, String name, dynamic err, [bool? reerror = false]) → void
Adds instrumentation to error handling.
isOpen() bool
Checks if the component is opened. Returns true if the component has been opened and false otherwise.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
open(String? correlationId) Future
Opens the component.
setReferences(IReferences references) → void
Sets references to dependent components.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited