datahub 0.17.0-dev.87 copy "datahub: ^0.17.0-dev.87" to clipboard
datahub: ^0.17.0-dev.87 copied to clipboard

DataHub is a Cloud Development Ecosystem aiming to bring the power of Dart into the Cloud.

example/datahub_example.dart

import 'dart:io';

import 'package:datahub/datahub.dart';

class TestEndpoint extends ApiEndpoint {
  TestEndpoint() : super(RoutePattern('/'));

  @override
  Future<dynamic> get(ApiRequest request) async {
    return TextResponse.plain('works!');
  }
}

void main(List<String> args) async {
  final host = ApplicationHost(
      [
        () => TestService('test'),
        () => ApiService('api', [TestEndpoint()]),
      ],
      onInitialized: onInit,
      config: {
        'api': {'port': 1234, 'metricPrefix': 'test_api'}
      });
  await host.run();

  // required because of signal catching inside ServiceHost
  exit(0);
}

class TestService extends BaseService {
  // use ioc to inject other services
  final log = resolve<LogService>();
  final funMetric = resolve<InstrumentationService>().counter(
    'fun_total',
    help: 'Shows how much fun it is to use datahub.',
  );

  TestService(String configPath) : super(configPath);

  @override
  Future<void> initialize() async {
    // some logs
    log.debug('Some debug message.');
    log.verbose('Some verbose message.');
    log.info('Some info message.');
    log.warn('Some warn message.');
    log.error('Some error message.');
    log.critical('Some critical message.');

    final _client =
        await RestClient.connect(Uri.parse('http://localhost:1234'));

    resolve<SchedulerService>().schedule(() async {
      funMetric.inc();

      await _client.get('/');
    }, Schedule.repeat(const Duration(seconds: 3)));
  }
}

void onInit() {
  resolve<LogService>().info('Initialization done!');
}
3
likes
0
points
715
downloads

Publisher

verified publisherdatahubproject.net

Weekly Downloads

DataHub is a Cloud Development Ecosystem aiming to bring the power of Dart into the Cloud.

Homepage

License

unknown (license)

Dependencies

args, boost, dart_amqp, http, http2, intl, minio, path, pointycastle, rxdart, test, uuid, yaml

More

Packages that depend on datahub