Skip to content

RouteGroup

[Source]

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.

class iso RouteGroup

Constructors

create

[Source]

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

Returns


Public Functions

get

[Source]

Register a GET route.

fun ref get(
  path: String val,
  handler: Handler val,
  middleware: (Array[Middleware val] val | None val) = reference)
: None val

Parameters

Returns


post

[Source]

Register a POST route.

fun ref post(
  path: String val,
  handler: Handler val,
  middleware: (Array[Middleware val] val | None val) = reference)
: None val

Parameters

Returns


put

[Source]

Register a PUT route.

fun ref put(
  path: String val,
  handler: Handler val,
  middleware: (Array[Middleware val] val | None val) = reference)
: None val

Parameters

Returns


delete

[Source]

Register a DELETE route.

fun ref delete(
  path: String val,
  handler: Handler val,
  middleware: (Array[Middleware val] val | None val) = reference)
: None val

Parameters

Returns


patch

[Source]

Register a PATCH route.

fun ref patch(
  path: String val,
  handler: Handler val,
  middleware: (Array[Middleware val] val | None val) = reference)
: None val

Parameters

Returns


[Source]

Register a HEAD route.

fun ref head(
  path: String val,
  handler: Handler val,
  middleware: (Array[Middleware val] val | None val) = reference)
: None val

Parameters

Returns


options

[Source]

Register an OPTIONS route.

fun ref options(
  path: String val,
  handler: Handler val,
  middleware: (Array[Middleware val] val | None val) = reference)
: None val

Parameters

Returns


route

[Source]

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

Returns


group

[Source]

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.

fun ref group(
  inner: RouteGroup iso)
: None val

Parameters

Returns