Documentation
Performance Layer

High-Speed Routing

Kitwork uses a high-performance Radix Tree router. Build sub-millisecond APIs with ease.

01

Basic Routing

Define routes using the router object. Supported methods include GET, POST, PUT, DELETE, and PATCH.

routing.kitwork.js
// Simple GET route
router.get("/").handle((req, res) => {
    return res.text("Hello Kitwork!");
});
02

Route Parameters

Extract parameters from the URL using the :name syntax.

params.kitwork.js
router.get("/users/:id").handle((req, res) => {
    const id = req.params("id");
    return res.json({ userId: id });
});
03

Route Groups

Prefix related endpoints dynamically using the router.group() API for clean middleware scoping.

groups.js
const api = router.group("/api");

// This endpoint serves /api/v1/health
api.get("/v1/health").handle((req, res) => {
    return res.json({ status: "healthy" });
});
04

Request & Response API

Manipulate queries, headers, and request states, then render custom response body types.

request-response.js
router.get("/details").handle((req, res) => {
    const token = req.headers("Authorization");
    const queryVal = req.query("search").text();

    return res
        .status(200)
        .json({
            token: token,
            search: queryVal
        });
});
05

Body Parsing & POST

Extract JSON request payloads or URL-encoded form inputs safely inside write endpoints.

post-request.js
router.post("/api/user").handle((req, res) => {
    const body = req.body().json();
    const newUser = db.table("user").create({
        username: body.username,
        email: body.email
    });
    return res.status(201).json(newUser);
});
06

Custom Headers & Status Codes

Fine-tune responses by overriding default headers and setting custom response statuses.

headers.js
router.get("/api/custom").handle((req, res) => {
    return res
        .status(202)
        .header("X-Custom-Header", "Kitwork-Sovereign")
        .json({ accepted: true });
});