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.4

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.

Libraries

dia_router
Middleware for Dia. Allows you to create separate middleware for specific urls and http methods