A router for Dia. Allow add dia middlewares for handle different url addresses.


License
MIT

Documentation

Pub Package

Router middleware for Dia.

This package allows you to create separate middleware for specific urls and http methods

Install:

Add to pubspec.yaml in dependencies section this:

    dia_router: ^0.1.6

Then run pub get

Usage:

A simple usage example:

import 'dart:io';

import 'package:dia/dia.dart';
import 'package:dia_router/dia_router.dart';

/// Custom Context with Routing mixin
class ContextWithRouting extends Context with Routing {
  ContextWithRouting(HttpRequest request) : super(request);
}

main() {
  final app = App((req)=>ContextWithRouting(req));
  
  final router = Router('/prefix');
  router.get('/path/:id', (ctx,next) async {
    ctx.body = 'params=${ctx.parsms} query=${ctx.query}';
  });
  
  app.use(router.middleware);

  app
      .listen('localhost', 8080)
      .then((info) => print('Route example on http://localhost:8080/perfix/path/12?count=10'));
}

GET http://localhost:8080/perfix/path/12?count=10

params={id:12} query={count:10}

Router support all HTTP method: GET,POST,PUT,PATCH,OPTION,DELETE,HEADER,CONNECT,TRACE

For more details, please, see example folder and test folder.

Use with:

  • dia - A simple dart http server in Koa2 style.
  • dia_cors - Package for CORS middleware.
  • dia_body - Package with the middleware for parse request body.
  • dia_static - Package to serving static files.

Migration from 0.0.*

change

final app = App<ContextWithRouting>();

to

final app = App((req)=>ContextWithRouting(req));

Features and bugs:

I will be glad for any help and feedback! Please file feature requests and bugs at the issue tracker.