angel_framework 2.0.0-alpha.1 copy "angel_framework: ^2.0.0-alpha.1" to clipboard
angel_framework: ^2.0.0-alpha.1 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 [...]

angel_framework #

Pub build status

A high-powered HTTP server with support for dependency injection, sophisticated routing and more.

This is the core of the Angel framework. To build real-world applications, please see the homepage.

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

main() async {
    var app = new Angel(reflector: MirrorsReflector());

    // 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
69%
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