RelicRouter typedef
Just a typedef for better auto-complete ///
Basic Routing
final router = Router<Handler>();
// Static routes
router.get('/', (req) {
return Response.ok(
body: Body.fromString('Home'),
);
});
// Route with parameters
router.get('/users/:id', (req) {
final id = req.pathParameters['id'];
return Response.ok(
body: Body.fromString('User $id'),
);
});
// Multiple parameters
router.get('/posts/:year/:month/:slug', (req) {
final year = req.pathParameters['year'];
final month = req.pathParameters['month'];
final slug = req.pathParameters['slug'];
return Response.ok();
});
HTTP Methods
router.get('/users', (req) => /* list users */);
router.post('/users', (req) => /* create user */);
router.put('/users/:id', (req) => /* update user */);
router.patch('/users/:id', (req) => /* partial update */);
router.delete('/users/:id', (req) => /* delete user */);
Sub-routers
final apiRouter = Router<Handler>();
apiRouter.get('/users', (req) => /* users */);
apiRouter.get('/posts', (req) => /* posts */);
final mainRouter = Router<Handler>();
mainRouter.attach('/api', apiRouter);
// Results in: /api/users, /api/posts
Using with Pipeline
final handler = const Pipeline()
.addMiddleware(routeWith(router))
.addHandler(respondWith((_) => Response.notFound()));
Implementation
typedef RelicRouter = Router<Handler>;