RestClient class

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)
    • connecttimeout: connection timeout in milliseconds (default: 10 sec)
    • timeout: invocation timeout in milliseconds (default: 10 sec)

References

  • *:logger:*:*:1.0 (optional) ILogger components to pass log messages
  • *:counters:*:*: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');
  ...
Implemented types
Implementers

Constructors

RestClient()

Properties

baseRoute String
The base route.
read / write
client Client
The HTTP client.
read / write
connectionResolver HttpConnectionResolver
The connection resolver.
read / write
connectTimeout int
The connection timeout in milliseconds.
read / write
counters CompositeCounters
The performance counters.
read / write
hashCode int
The hash code for this object. [...]
read-only, inherited
headers Map<String, String>
The default headers to be added to every request.
read / write
logger CompositeLogger
The logger.
read / write
options ConfigParams
The configuration options.
read / write
retries int
The number of retries.
read / write
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
timeout int
The invocation timeout in milliseconds.
read / write
uri String
The remote service uri which is calculated on open.
read / write

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. [...]
override
configure(ConfigParams config) → void
Configures component by passing configuration parameters. [...]
override
createRequestRoute(String route) String
instrument(String correlationId, String name) Timing
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.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
open(String correlationId) Future
Opens the component. [...]
override
setReferences(IReferences references) → void
Sets references to dependent components. [...]
override
toString() String
Returns a string representation of this object.
inherited

Operators

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