shelf_api_builder 1.2.0 copy "shelf_api_builder: ^1.2.0" to clipboard
shelf_api_builder: ^1.2.0 copied to clipboard

A code generator to create RESTful API endpoints to be integrated with shelf.

example/main.dart

// ignore_for_file: avoid_print

import 'dart:async';
import 'dart:io';

import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart';
import 'package:shelf_api/shelf_api.dart';
import 'example_api.api.dart';

void main(List<String> args) async {
  final port = int.parse(args.firstOrNull ?? '8080');

  final app = const Pipeline()
      .addMiddleware(handleFormatExceptions())
      .addMiddleware(logRequests())
      .addMiddleware(rivershelf())
      .addHandler(ExampleApi().call);

  final server = await serve(app, 'localhost', port);
  print('Serving at http://${server.address.host}:${server.port}');

  final signals = [
    ProcessSignal.sigint,
    if (!Platform.isWindows) ProcessSignal.sigterm,
  ];
  final subs = <StreamSubscription>[];
  for (final signal in signals) {
    subs.add(
      signal.watch().listen((signal) {
        for (final sub in subs) {
          sub.cancel();
        }
        print('Received $signal - terminating server');
        server.close();
      }),
    );
  }
}
1
likes
0
points
66
downloads

Publisher

verified publisherskycoder42.de

Weekly Downloads

A code generator to create RESTful API endpoints to be integrated with shelf.

Repository (GitHub)
View/report issues

Topics

#server #shelf #dio #rest #api

License

unknown (license)

Dependencies

analyzer, build, build_config, code_builder, meta, path, shelf, shelf_api, source_gen, source_helper

More

Packages that depend on shelf_api_builder