Router class final

A tree of routes, composed at startup.

The shape follows axum: build one with route, nest others under a path with nest, add middleware with layer, and attach dependencies with withState.

final app = Router()
  ..route('/health', get(health))
  ..nest('/api/v1', v1)
  ..layer(Cors())
  ..withState(repo);
Implemented types
Available extensions

Constructors

Router({Object? metadata, int? bodyLimit, void onError(Object error, StackTrace stack)?})
Creates an empty router.
Router.module({String prefix = '', List<Route> routes = const [], Object? metadata})
Creates the router a generated module exposes.
factory

Properties

bodyLimit int?
The body limit, read from the outermost router.
final
handler Handler
The composed shelf handler.
no setter
hashCode int
The hash code for this object.
no setterinherited
metadata Object?
Anything an add-on wants to hang off this router.
final
onError → void Function(Object error, StackTrace stack)?
The error sink, read from the outermost router.
final
prefix String
The prefix this router contributes, normalized.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

call(Request request) FutureOr<Response>
Answers request, so a router is usable wherever a Handler is.
override
describe() List<MountedRoute>

Available on Router, provided by the RouterDescribe extension

Every route below this router, with the path it serves.
fallback(Handler handler) → void
Answers requests no route matched, instead of the default 404.
layer(Object middleware) → void
Wraps everything below this router in middleware.
merge(Router router) → void
Mounts router at this router's own path, adding no prefix.
mount(String path, Handler handler) → void
Hands everything under path to handler.
nest(String path, Router router) → void
Mounts router under path.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
route(String path, MethodRouter methods) → void
Serves methods at path, relative to this router.
routeLayer(Object middleware) → void
Wraps only the routes below this router in middleware.
toString() String
A string representation of this object.
inherited
withState<T extends Object>(T value) → void
Attaches state that @State() T handlers below this router read.

Operators

operator ==(Object other) bool
The equality operator.
inherited