---
title: "ClikaRT::http::RouteGroup"
sidebar_label: "RouteGroup"
description: "A handle for registering routes under a shared path prefix + middleware chain. Valid only while its HttpServer is alive and not yet serving."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--class">class</span>

**Header:** `ClikaRT/http/server.h`

A handle for registering routes under a shared path prefix + middleware chain. Valid only while its [`HttpServer`](./HttpServer.md) is alive and not yet serving.

## Exact-path routes (this group)

### get() {#get}

<div class="api-signature">

`void` **`get`**(`std::string_view` `path`, [`Handler`](./index.md#Handler) `handler`)

</div>

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 442

</div>

### post() {#post}

<div class="api-signature">

`void` **`post`**(`std::string_view` `path`, [`Handler`](./index.md#Handler) `handler`)

</div>

POST.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 445

</div>

### put() {#put}

<div class="api-signature">

`void` **`put`**(`std::string_view` `path`, [`Handler`](./index.md#Handler) `handler`)

</div>

PUT.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 448

</div>

### patch() {#patch}

<div class="api-signature">

`void` **`patch`**(`std::string_view` `path`, [`Handler`](./index.md#Handler) `handler`)

</div>

PATCH.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 451

</div>

### del() {#del}

<div class="api-signature">

`void` **`del`**(`std::string_view` `path`, [`Handler`](./index.md#Handler) `handler`)

</div>

DELETE (named [`del`](./RouteGroup.md#del); `delete` is a C++ keyword).

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 454

</div>

### head() {#head}

<div class="api-signature">

`void` **`head`**(`std::string_view` `path`, [`Handler`](./index.md#Handler) `handler`)

</div>

HEAD (an unrouted HEAD falls back to the matching GET handler).

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 457

</div>

### options() {#options}

<div class="api-signature">

`void` **`options`**(`std::string_view` `path`, [`Handler`](./index.md#Handler) `handler`)

</div>

OPTIONS.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 460

</div>

## Member functions

### RouteGroup() {#RouteGroup}

<div class="api-signature">

**`RouteGroup`**(`RouteGroup&&`) `noexcept`

</div>

Move-only: transfers the group handle.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 418

</div>

### operator=() {#operator-assign}

<div class="api-signature">

[`RouteGroup`](./RouteGroup.md)`&` **`operator=`**([`RouteGroup`](./RouteGroup.md)`&&`) `noexcept`

</div>

Move-assign: transfers the group handle.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 420

</div>

### \~RouteGroup() {#RouteGroup-2}

<div class="api-signature">

**`~RouteGroup`**()

</div>

Releases the group handle.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 422

</div>

### group() {#group}

<div class="api-signature">

[`RouteGroup`](./RouteGroup.md) **`group`**(`std::string_view` `prefix`)

</div>

A nested group; prefix + middleware compose with this group's.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 425

</div>

### use() {#use}

<div class="api-signature">

[`RouteGroup`](./RouteGroup.md)`&` **`use`**([`Middleware`](./index.md#Middleware) `middleware`) `&`

</div>

[Middleware](./index.md#Middleware) applied to every route in this group (chainable). A throw from the middleware is contained caller-side (see detail::contain). An empty middleware adds nothing.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 429

</div>

### route() {#route}

<div class="api-signature">

`void` **`route`**(<br />
&nbsp;&nbsp;&nbsp;&nbsp;[`Method`](./index.md#Method) `method`,<br />
&nbsp;&nbsp;&nbsp;&nbsp;`std::string_view` `pattern`,<br />
&nbsp;&nbsp;&nbsp;&nbsp;[`Handler`](./index.md#Handler) `handler`<br />
)

</div>

re2-pattern route (positional + named captures, read in the handler via [`ServerRequest::param`](./ServerRequest.md#param)). Same containment and registration contract as the exact-path group.

**Throws**

- `ClikaRT::Error`: when the pattern or registration is rejected.

<div class="api-declared">

Declared in `ClikaRT/http/server.h`, line 467

</div>
