angel_framework 2.0.0-alpha copy "angel_framework: ^2.0.0-alpha" to clipboard
angel_framework: ^2.0.0-alpha copied to clipboard

outdated

A high-powered HTTP server with DI, routing and more. When combined with the other packages in the Angel ecosystem, this package can be used to make robust application servers for API's, traditional s [...]

example/main.dart

import 'package:angel_container/mirrors.dart';
import 'package:angel_framework/angel_framework.dart';
import 'package:logging/logging.dart';

main() async {
  var app = new Angel(
    logger: Logger('angel'),
    reflector: MirrorsReflector(),
  );

  hierarchicalLoggingEnabled = true;

  app.logger.onRecord.listen((rec) {
    print(rec);
    if (rec.error != null) print(rec.error);
    if (rec.stackTrace != null) print(rec.stackTrace);
  });

  // Index route. Returns JSON.
  app.get('/', (req, res) => res.write('Welcome to Angel!'));

  // Accepts a URL like /greet/foo or /greet/bob.
  app.get(
    '/greet/:name',
    (req, res) {
      var name = req.params['name'];
      res
        ..write('Hello, $name!')
        ..close();
    },
  );

  // Pattern matching - only call this handler if the query value of `name` equals 'emoji'.
  app.get(
    '/greet',
    ioc((@Query('name', match: 'emoji') String name) => '😇🔥🔥🔥'),
  );

  // Handle any other query value of `name`.
  app.get(
    '/greet',
    ioc((@Query('name') String name) => 'Hello, $name!'),
  );

  // Simple fallback to throw a 404 on unknown paths.
  app.fallback((req, res) {
    throw new AngelHttpException.notFound(
      message: 'Unknown path: "${req.uri.path}"',
    );
  });

  var http = new AngelHttp(app);
  var server = await http.startServer('127.0.0.1', 3000);
  var url = 'http://${server.address.address}:${server.port}';
  print('Listening at $url');
  print('Visit these pages to see Angel in action:');
  print('* $url/greet/bob');
  print('* $url/greet/?name=emoji');
  print('* $url/greet/?name=jack');
  print('* $url/nonexistent_page');
}
53
likes
0
pub points
60%
popularity

Publisher

verified publisherangel-dart.dev

A high-powered HTTP server with DI, routing and more. When combined with the other packages in the Angel ecosystem, this package can be used to make robust application servers for API's, traditional server-side applications, and much more, along with a rich client API.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

angel_container, angel_http_exception, angel_model, angel_route, body_parser, charcode, combinator, dart2_constant, file, http_parser, logging, matcher, merge_map, meta, mime, path, stack_trace, tuple

More

Packages that depend on angel_framework