pip_services3_rpc 1.0.7

  • Readme
  • Changelog
  • Example
  • Installing
  • 82

Pip.Services Logo #

Remote Procedure Calls for Dart #

This framework is a part of the Pip.Services project. It provides the following synchronous communication components:

  • Direct - Direct client
  • Rest - RESTful [services] and [clients]
  • Status - [Heartbeat] and [status] services

Quick Links:

Acknowledgements #

The Dart version of Pip.Services is created and maintained by:

  • Sergey Seroukhov
  • Levichev Dmitry
  • Aleksey Dvoykin

The documentation is written by:

  • Mark Makarychev
  • Levichev Dmitry

Remote Procedure Calls for Pip.Services in Dart Changelog #

1.0.0 #

  • Initial version, created by Sergey Seroukhov and Dmitry Levichev

1.0.1 #

  • Fix loop in Call method of RestClient, clean code in tests.

1.0.2 #

  • Fix close methods of RestService and HttpEndpoint.

1.0.3 #

  • Fix work with time, convert to UTC

1.0.4 #

  • Add instrument functions in RestOperations

1.0.5 #

  • Add safe invocation method in RestOperations

1.0.6 #

  • Fix asynchronous authorization issues

1.0.7 #

  • Fix service interceptor call and error responding issues

example/main.dart

import 'package:pip_services3_commons/pip_services3_commons.dart';
import './Dummy.dart';
import './DummyController.dart';
import './DummyCommandableHttpService.dart';
import './DummyCommandableHttpClient.dart';

void main() async {
  var restConfig = ConfigParams.fromTuples([
    'connection.protocol',
    'http',
    'connection.host',
    'localhost',
    'connection.port',
    3000
  ]);

  DummyCommandableHttpService service;
  DummyCommandableHttpClient client;

  var ctrl = DummyController();

  service = DummyCommandableHttpService();
  service.configure(restConfig);

  var references = References.fromTuples([
    Descriptor(
        'pip-services-dummies', 'controller', 'default', 'default', '1.0'),
    ctrl,
    Descriptor('pip-services-dummies', 'service', 'http', 'default', '1.0'),
    service
  ]);
  service.setReferences(references);

  await service.open(null);

  client = DummyCommandableHttpClient();

  client.configure(restConfig);
  client.setReferences(References());
  await client.open(null);

  var dummy1 = Dummy.from(null, 'Key 1', 'Content 1');
  var dummy2 = Dummy.from(null, 'Key 2', 'Content 2');

  // Create one dummy
  try {
    var dummy = await client.createDummy(null, dummy1);
    // work with created item

    dummy1 = dummy;
  } catch (err) {
    // error processing
  }

  // Create another dummy
  try {
    var dummy = await client.createDummy(null, dummy2);
    // work with second created item
    dummy2 = dummy;
  } catch (err) {
    // error processing
  }

  // Get all dummies
  try {
    var dummies = await client.getDummies(
        null, FilterParams(), PagingParams(0, 5, false));
    // processing recived items
  } catch (err) {
    // error processing
  }

  // Update the dummy
  try {
    dummy1.content = 'Updated Content 1';
    var dummy = await client.updateDummy(null, dummy1);
    // processing with updated item
    dummy1 = dummy;
  } catch (err) {
    // error processing
  }

  // Delete dummy
  try {
    await client.deleteDummy(null, dummy1.id);
  } catch (err) {
    // error processing
  }

  // Try to get delete dummy
  try {
    var dummy = await client.getDummyById(null, dummy1.id);
    // work with deleted item
  } catch (err) {
    // error processing
  }
  // close service and client
  await client.close(null);
  await service.close(null);
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  pip_services3_rpc: ^1.0.7

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:pip_services3_rpc/pip_services3_rpc.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
63
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
82
Learn more about scoring.

We analyzed this package on Jul 9, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.4
  • pana: 0.13.14

Analysis suggestions

Package not compatible with SDK flutter

Because it is not compatible with any of the supported runtimes: flutter-native, flutter-web

Package not compatible with runtime flutter-native on android

Because:

  • package:pip_services3_rpc/pip_services3_rpc.dart that imports:
  • package:pip_services3_rpc/src/build/build.dart that imports:
  • package:pip_services3_rpc/src/build/DefaultRpcFactory.dart that imports:
  • package:pip_services3_rpc/src/services/StatusRestService.dart that imports:
  • package:pip_services3_rpc/src/services/RestService.dart that imports:
  • package:pip_services3_rpc/src/services/HttpResponseSender.dart that imports:
  • package:pip_services3_commons/pip_services3_commons.dart that imports:
  • package:pip_services3_commons/src/validate/validate.dart that imports:
  • package:pip_services3_commons/src/validate/ProjectionParamsSchema.dart that imports:
  • package:pip_services3_commons/src/validate/ArraySchema.dart that imports:
  • package:pip_services3_commons/src/reflect/ObjectReader.dart that imports:
  • package:pip_services3_commons/src/reflect/PropertyReflector.dart that imports:
  • dart:mirrors

Package not compatible with runtime flutter-native on ios

Because:

  • package:pip_services3_rpc/pip_services3_rpc.dart that imports:
  • package:pip_services3_rpc/src/build/build.dart that imports:
  • package:pip_services3_rpc/src/build/DefaultRpcFactory.dart that imports:
  • package:pip_services3_rpc/src/services/StatusRestService.dart that imports:
  • package:pip_services3_rpc/src/services/RestService.dart that imports:
  • package:pip_services3_rpc/src/services/HttpResponseSender.dart that imports:
  • package:pip_services3_commons/pip_services3_commons.dart that imports:
  • package:pip_services3_commons/src/validate/validate.dart that imports:
  • package:pip_services3_commons/src/validate/ProjectionParamsSchema.dart that imports:
  • package:pip_services3_commons/src/validate/ArraySchema.dart that imports:
  • package:pip_services3_commons/src/reflect/ObjectReader.dart that imports:
  • package:pip_services3_commons/src/reflect/PropertyReflector.dart that imports:
  • dart:mirrors

Package not compatible with runtime flutter-native on linux

Because:

  • package:pip_services3_rpc/pip_services3_rpc.dart that imports:
  • package:pip_services3_rpc/src/build/build.dart that imports:
  • package:pip_services3_rpc/src/build/DefaultRpcFactory.dart that imports:
  • package:pip_services3_rpc/src/services/StatusRestService.dart that imports:
  • package:pip_services3_rpc/src/services/RestService.dart that imports:
  • package:pip_services3_rpc/src/services/HttpResponseSender.dart that imports:
  • package:pip_services3_commons/pip_services3_commons.dart that imports:
  • package:pip_services3_commons/src/validate/validate.dart that imports:
  • package:pip_services3_commons/src/validate/ProjectionParamsSchema.dart that imports:
  • package:pip_services3_commons/src/validate/ArraySchema.dart that imports:
  • package:pip_services3_commons/src/reflect/ObjectReader.dart that imports:
  • package:pip_services3_commons/src/reflect/PropertyReflector.dart that imports:
  • dart:mirrors

Package not compatible with runtime flutter-native on macos

Because:

  • package:pip_services3_rpc/pip_services3_rpc.dart that imports:
  • package:pip_services3_rpc/src/build/build.dart that imports:
  • package:pip_services3_rpc/src/build/DefaultRpcFactory.dart that imports:
  • package:pip_services3_rpc/src/services/StatusRestService.dart that imports:
  • package:pip_services3_rpc/src/services/RestService.dart that imports:
  • package:pip_services3_rpc/src/services/HttpResponseSender.dart that imports:
  • package:pip_services3_commons/pip_services3_commons.dart that imports:
  • package:pip_services3_commons/src/validate/validate.dart that imports:
  • package:pip_services3_commons/src/validate/ProjectionParamsSchema.dart that imports:
  • package:pip_services3_commons/src/validate/ArraySchema.dart that imports:
  • package:pip_services3_commons/src/reflect/ObjectReader.dart that imports:
  • package:pip_services3_commons/src/reflect/PropertyReflector.dart that imports:
  • dart:mirrors

Package not compatible with runtime flutter-native on windows

Because:

  • package:pip_services3_rpc/pip_services3_rpc.dart that imports:
  • package:pip_services3_rpc/src/build/build.dart that imports:
  • package:pip_services3_rpc/src/build/DefaultRpcFactory.dart that imports:
  • package:pip_services3_rpc/src/services/StatusRestService.dart that imports:
  • package:pip_services3_rpc/src/services/RestService.dart that imports:
  • package:pip_services3_rpc/src/services/HttpResponseSender.dart that imports:
  • package:pip_services3_commons/pip_services3_commons.dart that imports:
  • package:pip_services3_commons/src/validate/validate.dart that imports:
  • package:pip_services3_commons/src/validate/ProjectionParamsSchema.dart that imports:
  • package:pip_services3_commons/src/validate/ArraySchema.dart that imports:
  • package:pip_services3_commons/src/reflect/ObjectReader.dart that imports:
  • package:pip_services3_commons/src/reflect/PropertyReflector.dart that imports:
  • dart:mirrors

Package not compatible with runtime flutter-web on web

Because:

  • package:pip_services3_rpc/pip_services3_rpc.dart that imports:
  • package:pip_services3_rpc/src/build/build.dart that imports:
  • package:pip_services3_rpc/src/build/DefaultRpcFactory.dart that imports:
  • package:pip_services3_rpc/src/services/StatusRestService.dart that imports:
  • package:pip_services3_rpc/src/services/RestService.dart that imports:
  • package:pip_services3_rpc/src/services/HttpResponseSender.dart that imports:
  • package:pip_services3_commons/pip_services3_commons.dart that imports:
  • package:pip_services3_commons/src/validate/validate.dart that imports:
  • package:pip_services3_commons/src/validate/ProjectionParamsSchema.dart that imports:
  • package:pip_services3_commons/src/validate/ArraySchema.dart that imports:
  • package:pip_services3_commons/src/reflect/ObjectReader.dart that imports:
  • package:pip_services3_commons/src/reflect/PropertyReflector.dart that imports:
  • dart:mirrors

Package not compatible with runtime js

Because:

  • package:pip_services3_rpc/pip_services3_rpc.dart that imports:
  • package:pip_services3_rpc/src/build/build.dart that imports:
  • package:pip_services3_rpc/src/build/DefaultRpcFactory.dart that imports:
  • package:pip_services3_rpc/src/services/StatusRestService.dart that imports:
  • package:pip_services3_rpc/src/services/RestService.dart that imports:
  • package:pip_services3_rpc/src/services/HttpResponseSender.dart that imports:
  • package:pip_services3_commons/pip_services3_commons.dart that imports:
  • package:pip_services3_commons/src/validate/validate.dart that imports:
  • package:pip_services3_commons/src/validate/ProjectionParamsSchema.dart that imports:
  • package:pip_services3_commons/src/validate/ArraySchema.dart that imports:
  • package:pip_services3_commons/src/reflect/ObjectReader.dart that imports:
  • package:pip_services3_commons/src/reflect/PropertyReflector.dart that imports:
  • dart:mirrors

Package not compatible with runtime native-aot

Because:

  • package:pip_services3_rpc/pip_services3_rpc.dart that imports:
  • package:pip_services3_rpc/src/build/build.dart that imports:
  • package:pip_services3_rpc/src/build/DefaultRpcFactory.dart that imports:
  • package:pip_services3_rpc/src/services/StatusRestService.dart that imports:
  • package:pip_services3_rpc/src/services/RestService.dart that imports:
  • package:pip_services3_rpc/src/services/HttpResponseSender.dart that imports:
  • package:pip_services3_commons/pip_services3_commons.dart that imports:
  • package:pip_services3_commons/src/validate/validate.dart that imports:
  • package:pip_services3_commons/src/validate/ProjectionParamsSchema.dart that imports:
  • package:pip_services3_commons/src/validate/ArraySchema.dart that imports:
  • package:pip_services3_commons/src/reflect/ObjectReader.dart that imports:
  • package:pip_services3_commons/src/reflect/PropertyReflector.dart that imports:
  • dart:mirrors

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0 <3.0.0
angel_framework ^2.1.1 2.1.1
http ^0.12.0 0.12.1
pip_services3_commons >=1.0.4 <2.0.0 1.0.11
pip_services3_components >=1.0.2 <2.0.0 1.0.6
Transitive dependencies
angel_container 1.1.0
angel_http_exception 1.1.0
angel_model 1.0.3
angel_route 3.1.0+1
charcode 1.1.3
code_buffer 1.0.1
collection 1.14.13 1.15.0-nullsafety
combinator 1.1.0
convert 2.1.1
crypto 2.1.5
dart2_constant 1.0.2+dart2
file 5.2.1
http2 1.0.0
http_parser 3.1.4
http_server 0.9.8+3
intl 0.16.1
logging 0.11.4
matcher 0.12.8
merge_map 1.0.2
meta 1.2.2 1.3.0-nullsafety
mime 0.9.6+3
mock_request 1.0.7
mustache4dart2 0.1.0
path 1.7.0
pedantic 1.9.2
quiver 2.1.3
quiver_hashcode 2.0.0
recase 2.0.1 3.0.0
source_span 1.7.0
sprintf 4.0.2
stack_trace 1.9.5
string_scanner 1.0.5
term_glyph 1.1.0
tuple 1.0.3
typed_data 1.2.0 1.3.0-nullsafety
uuid 2.2.0
yaml 2.2.1
Dev dependencies
test >=1.14.2 <2.0.0