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!");
});
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 });
});
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" });
});
// 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
});
});
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);
});
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 });
});
return res
.status(202)
.header("X-Custom-Header", "Kitwork-Sovereign")
.json({ accepted: true });
});