CommandableHttpClient class

Abstract client that calls commandable HTTP service.

Commandable services are generated automatically for ICommandable objects. Each command is exposed as POST operation that receives all parameters in body object.

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)

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

Example

class MyCommandableHttpClient extends CommandableHttpClient implements IMyClient {
   ...

   Future<MyData> getData(String? correlationId, String id) async {
       var result = await callCommand(
           "get_data",
           correlationId,
           { 'id': id });
      if (result == null) return null;
      return MyData.fromJson(json.decode(result));
    }
    ...
}

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

var result = await client.getData("123", "1")
...
Inheritance

Constructors

CommandableHttpClient(String baseRoute)
Creates a new instance of the client.

Properties

baseRoute String?
The base route.
getter/setter pairinherited
client ↔ Client?
The HTTP client.
getter/setter pairinherited
connectionResolver HttpConnectionResolver
The connection resolver.
getter/setter pairinherited
connectTimeout int
The connection timeout in milliseconds.
getter/setter pairinherited
correlationIdLocation String
getter/setter pairinherited
counters ↔ CompositeCounters
The performance counters.
getter/setter pairinherited
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 pairinherited
logger ↔ CompositeLogger
The logger.
getter/setter pairinherited
options ↔ ConfigParams
The configuration options.
getter/setter pairinherited
retries int
The number of retries.
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
timeout int
The invocation timeout in milliseconds.
getter/setter pairinherited
tracer ↔ CompositeTracer
The tracer.
getter/setter pairinherited
uri String?
The remote service uri which is calculated on open.
getter/setter pairinherited

Methods

addCorrelationId(Map<String, String>? params, String? correlationId) Map<String, String>
Adds a correlation id (correlation_id) to invocation parameter map.
inherited
addFilterParams(Map<String, String>? params, FilterParams? filter) Map<String, String>
Adds filter parameters (with the same name as they defined) to invocation parameter map.
inherited
addPagingParams(Map<String, String>? params, PagingParams? paging) Map<String, String>
Adds paging parameters (skip, take, total) to invocation parameter map.
inherited
call(String method, String route, String? correlationId, Map<String, String> params, [dynamic data]) Future
Calls a remote method via HTTP/REST protocol.
inherited
callCommand(String name, String? correlationId, dynamic params) Future
Calls a remote method via HTTP commadable protocol. The call is made via POST operation and all parameters are sent in body object. The complete route to remote method is defined as baseRoute + "/" + name.
close(String? correlationId) Future
Closes component and frees used resources.
inherited
configure(ConfigParams config) → void
Configures component by passing configuration parameters.
inherited
createRequestRoute(String route) String
inherited
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.
inherited
instrumentError(String? correlationId, String name, dynamic err, [bool? reerror = false]) → void
Adds instrumentation to error handling.
inherited
isOpen() bool
Checks if the component is opened. Returns true if the component has been opened and false otherwise.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
open(String? correlationId) Future
Opens the component.
inherited
setReferences(IReferences references) → void
Sets references to dependent components.
inherited
toString() String
A string representation of this object.
inherited

Operators

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