Core Concepts

#zp-body-removed

Zuplo does not support GET or HEAD requests with bodies. This is because the product is based on web standards and our stack makes heavy use of fetch which explicitly does not support GET, HEAD requests with a body.

For this reason, any body of a GET/HEAD request is stripped on entry into Zuplo infrastructure and a header zp-body-removed is added to the request.

This allows your origin/backend server to know that a body was removed. If you want to enforce this and reject such requests it is easy to write a custom policy that looks for a zp-body-removed header and return a response, e.g.

import { HttpProblems, ZuploContext, ZuploRequest } from "@zuplo/runtime";

export default async function (request: ZuploRequest, context: ZuploContext) {
  const bodyRemoved = request.headers.get("zp-body-removed");

  if (bodyRemoved) {
    return HttpProblems.badRequest(request, context, {
      detail: `GET or HEAD requests cannot have a body.`,
    });
  }

  return request;
}
ts