RouteGroup¶
A group of routes sharing a common path prefix and optional middleware.
Route groups let you factor out repeated prefixes and middleware instead of attaching them to every route individually. Groups can be nested — inner groups inherit the outer group's prefix and middleware, with the outer middleware running first.
let api = hobby.RouteGroup("/api" where middleware = auth_mw)
api.>get("/users", UsersHandler)
api.>get("/users/:id", UserHandler)
app.>group(consume api)
Route methods are fun ref — automatic receiver recovery allows calling
them on an iso receiver since all arguments are val. Use .> to chain
route calls. Pass the group to Application.group() or an outer
RouteGroup.group() when done — this consumes the group and flattens its
routes.
Constructors¶
create¶
Create a route group with a path prefix and optional middleware.
The prefix is prepended to every route path in the group. Middleware, if provided, runs before each route's own middleware.
new iso create(
prefix: String val,
middleware: (Array[Middleware val] val | None val) = reference)
: RouteGroup iso^
Parameters¶
- prefix: String val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- RouteGroup iso^
Public Functions¶
get¶
Register a GET route.
fun ref get(
path: String val,
handler: Handler val,
middleware: (Array[Middleware val] val | None val) = reference)
: None val
Parameters¶
- path: String val
- handler: Handler val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- None val
post¶
Register a POST route.
fun ref post(
path: String val,
handler: Handler val,
middleware: (Array[Middleware val] val | None val) = reference)
: None val
Parameters¶
- path: String val
- handler: Handler val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- None val
put¶
Register a PUT route.
fun ref put(
path: String val,
handler: Handler val,
middleware: (Array[Middleware val] val | None val) = reference)
: None val
Parameters¶
- path: String val
- handler: Handler val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- None val
delete¶
Register a DELETE route.
fun ref delete(
path: String val,
handler: Handler val,
middleware: (Array[Middleware val] val | None val) = reference)
: None val
Parameters¶
- path: String val
- handler: Handler val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- None val
patch¶
Register a PATCH route.
fun ref patch(
path: String val,
handler: Handler val,
middleware: (Array[Middleware val] val | None val) = reference)
: None val
Parameters¶
- path: String val
- handler: Handler val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- None val
head¶
Register a HEAD route.
fun ref head(
path: String val,
handler: Handler val,
middleware: (Array[Middleware val] val | None val) = reference)
: None val
Parameters¶
- path: String val
- handler: Handler val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- None val
options¶
Register an OPTIONS route.
fun ref options(
path: String val,
handler: Handler val,
middleware: (Array[Middleware val] val | None val) = reference)
: None val
Parameters¶
- path: String val
- handler: Handler val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- None val
route¶
Register a route with an arbitrary HTTP method.
fun ref route(
method: Method val,
path: String val,
handler: Handler val,
middleware: (Array[Middleware val] val | None val) = reference)
: None val
Parameters¶
- method: Method val
- path: String val
- handler: Handler val
- middleware: (Array[Middleware val] val | None val) = reference
Returns¶
- None val
group¶
Consume a nested route group, flattening its routes into this group.
The inner group's prefix is appended to this group's prefix, and the inner group's middleware is appended after this group's middleware. The inner group is consumed — no further registration on it is possible.
Parameters¶
- inner: RouteGroup iso
Returns¶
- None val