shelf_dynamic_forwarder 1.1.2 copy "shelf_dynamic_forwarder: ^1.1.2" to clipboard
shelf_dynamic_forwarder: ^1.1.2 copied to clipboard

A utility for dynamic router composition in Dart's shelf framework, enabling clean forwarding with path segment rewriting.

example/example.dart

import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart';
import 'package:shelf_dynamic_forwarder/shelf_dynamic_forwarder.dart';
import 'package:shelf_router/shelf_router.dart';

Router get filenamesRequest {
  final handler = Router();
  handler.get('/filenames', (Request req) async {
    // Your logic code here..
    return Response.ok('');
  });
  return handler;
}

Router get fileRequest {
  final handler = Router();
  handler.post('/file', (Request req) async {
    // Your logic code here..
    return Response.ok('');
  });
  return handler;
}

Router get deleteFileRequest {
  final handler = Router();
  handler.delete('/deleteFile', (Request req) async {
    final file = req.headers['x-path'];
    // Your logic code here..
    return Response.ok('... $file');
  });
  return handler;
}

Router get deleteIndexRequest {
  final handler = Router();
  handler.delete('/deleteIndex', (Request req) async {
    final index = req.headers['x-index'];
    // Your logic code here..
    return Response.ok('... $index');
  });
  return handler;
}

final Map<String, Handler> dynamicRoutes = {
  'deleteIndex': deleteIndexRequest,
  'deleteFile': deleteFileRequest,
  'filenames': filenamesRequest,
  '.*': fileRequest,
};

Handler get router {
  final dynamicRouter = createDynamicRouter(
    routePattern: '/api/<adminId>/<index>/<path|.*>',
    routes: dynamicRoutes,
  );

  return dynamicRouter;
}

void main() async {
  final handler =
      const Pipeline().addMiddleware(logRequests()).addHandler(router);

  await serve(handler, 'localhost', 8080);
}
1
likes
150
points
384
downloads

Publisher

unverified uploader

Weekly Downloads

A utility for dynamic router composition in Dart's shelf framework, enabling clean forwarding with path segment rewriting.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

shelf, shelf_router

More

Packages that depend on shelf_dynamic_forwarder