Primate Logo Primate
Guides Requests

Read request path

Access dynamic path parameters from the request object. Parameters are URL-decoded.

Use .get() for required params, .try() for optional.

Define route with params

Use brackets in route filename.

TypeScriptroutes/user/[id].ts
import route from "primate/route";

export default route({
  get(request) {
    const id = request.path.get("id");
    return { id };
  },
});

Access parameters

Read params via request.path.

TypeScriptroutes/user/[id].ts
import route from "primate/route";

export default route({
  get(request) {
    const id = request.path.get("id"); // throws if missing
    const name = request.path.try("name"); // null if missing
    return { id, name };
  },
});

Multiple params

Stack brackets for nested params.

TypeScriptroutes/user/[id]/posts/[post_id].ts
import route from "primate/route";

export default route({
  get(request) {
    const id = request.path.get("id");
    const postId = request.path.get("post_id");
    return { id, postId };
  },
});

Optional params

Use double brackets for optional.

TypeScriptroutes/user/[[name]].ts
import route from "primate/route";

export default route({
  get(request) {
    const name = request.path.try("name") ?? "guest";
    return { name };
  },
});