abstract_router 1.0.4 copy "abstract_router: ^1.0.4" to clipboard
abstract_router: ^1.0.4 copied to clipboard

outdated

An abstract routing implementation that provides a low-level implementation of a fast, efficient, and practical routing system for any scenario that uses routing.

example/main.dart

import 'package:abstract_router/abstract_router.dart';

void main() {
  AbstractRouter router = AbstractRouter();

  router.handle('/user/:id', (RouterContext context) async {
    print('context in handle [/user/:id]  is: ${context}' );
  });

  router.handle('/user/:name/abc', (RouterContext context) async {
    print('context in handle [/user/:name/abc]  is: ${context}' );
  });

  router.use('/user', [middleware1]);
  router.use('/user/:name', [middleware2]);

  print('=======route1=======');

  RouterContext context1 = router.parse('/user/id_is_abcdefg?abc=efg');
  context1.middlewares.forEach((RouteMiddleware middleware) {
    middleware(context1);
  });
  context1.handler(context1);
  print('=======route1 end=======\n');

  print('=======route2=======');
  RouterContext context2 = router.parse('/user/name_is_abcdefg/abc?abc=efg');
  context2.middlewares.forEach((RouteMiddleware middleware) {
    middleware(context2);
  });
  context2.handler(context2);
  print('=======route2 end=======\n');
}

Future<dynamic> middleware1(RouterContext context) async {
  print('context in middleware1: ${context}');
  context.params['middleware1 add some data'] = 'yes';
}

Future<dynamic> middleware2(RouterContext context) async {
  print('context in middleware2: ${context}');
  context.params['middleware2 add some data'] = 'yes';
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

An abstract routing implementation that provides a low-level implementation of a fast, efficient, and practical routing system for any scenario that uses routing.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

More

Packages that depend on abstract_router