Skip to content

Request Context

The context parameter passed to handleRequest(context) in HTTP ingress handlers wraps the incoming HTTP request. It provides access to parameters, headers, body, and request metadata.

Quick Example

javascript
export function handleRequest(context) {
  const name = context.getParameter("name");
  const body = JSON.parse(context.getBody());
  const auth = context.getHeader("Authorization");

  return Results.json().renderRaw(JSON.stringify({ received: true }));
}

Methods

Parameters

context.getParameter(name)

Get a single query or form parameter by name.

  • Parameters: name: string
  • Returns: string | null
javascript
// URL: /api/items?page=2&limit=10
const page = context.getParameter("page");   // "2"
const limit = context.getParameter("limit"); // "10"

context.getParameterAsInteger(name)

Get a parameter parsed as an integer. Returns null if the parameter is missing or not a valid integer.

  • Parameters: name: string
  • Returns: number | null
javascript
const page = context.getParameterAsInteger("page"); // 2
const bad = context.getParameterAsInteger("invalid"); // null

context.getParameterMap()

Get all parameters as a map. Each key maps to an array of values (since a parameter can appear multiple times).

  • Returns: Map<string, string[]>
javascript
const params = context.getParameterMap();
// { "page": ["2"], "tags": ["js", "web"] }

Body

context.getBody()

Read the full request body as a string.

  • Returns: string
javascript
// POST with JSON body
const body = JSON.parse(context.getBody());
const { name, email } = body;

context.getContentType()

Get the request's Content-Type header value.

  • Returns: string
javascript
if (context.getContentType() === "application/json") {
  const data = JSON.parse(context.getBody());
}

Headers

context.getHeader(name)

Get a single header value by name.

  • Parameters: name: string
  • Returns: string | null
javascript
const token = context.getHeader("Authorization");
const userAgent = context.getHeader("User-Agent");

context.getHeaders()

Get all headers as a map.

  • Returns: Map<string, string>
javascript
const headers = context.getHeaders();

Request Metadata

context.getRequestPath()

Get the request URI path.

  • Returns: string
javascript
const path = context.getRequestPath();
// → "/backend/api/items"

context.getMethod()

Get the HTTP method (GET, POST, DELETE, etc.).

  • Returns: string
javascript
const method = context.getMethod();
// → "POST"

context.getRemoteAddr()

Get the client's IP address.

  • Returns: string
javascript
const ip = context.getRemoteAddr();
console.log("Request from:", ip);

File Uploads

context.getFileItemIterator()

Get an iterator for multipart file uploads. Use this for processing uploaded files.

  • Returns: FileItemIterator
javascript
const iterator = context.getFileItemIterator();
while (iterator.hasNext()) {
  const item = iterator.next();
  const name = item.getFieldName();
  const stream = item.openStream();
  // process the uploaded file...
}

Request-Scoped Data

context.setAttribute(key, value)

Store data scoped to the current request. Useful for passing data between middleware-like functions.

  • Parameters: key: string, value: any

context.getAttribute(key)

Retrieve request-scoped data.

  • Parameters: key: string
  • Returns: any
javascript
context.setAttribute("userId", authenticatedUser.id);
// later...
const userId = context.getAttribute("userId");

Raw Servlet Access

context.getServletRequest()

Access the underlying HttpServletRequest object for advanced use cases.

  • Returns: HttpServletRequest

WARNING

Only use this when the higher-level methods don't cover your use case. Direct servlet access bypasses the convenience layer.

Common Patterns

JSON POST Handler

javascript
export function handleRequest(context) {
  const body = JSON.parse(context.getBody());

  if (!body.name || !body.email) {
    return Results.badRequest().json().renderRaw(
      JSON.stringify({ error: "name and email are required" })
    );
  }

  const id = UserService.createUser(body);
  return Results.created("/api/users/" + id)
    .json()
    .renderRaw(JSON.stringify({ id }));
}

Paginated GET Handler

javascript
export function handleRequest(context) {
  const page = context.getParameterAsInteger("page") || 1;
  const limit = context.getParameterAsInteger("limit") || 20;
  const search = context.getParameter("q") || "";

  const items = ItemService.findItems(search, page, limit);
  const total = ItemService.countItems(search);

  return Results.json().renderRaw(JSON.stringify({
    data: items,
    page,
    limit,
    total
  }));
}

Auth Header Extraction

javascript
export function handleRequest(context) {
  const auth = context.getHeader("Authorization");
  if (!auth || !auth.startsWith("Bearer ")) {
    return Results.unauthorized().json().renderRaw(
      JSON.stringify({ error: "Missing or invalid Authorization header" })
    );
  }
  const token = auth.substring(7);
  // validate token...
}

DieselEngine Scripting Documentation