Review a generated versioned order handler

from API versioning
Node 24 advanced 6 min 4 issues to find

Review this generated versioned order handler before release.

Serve GET /orders/:id for v1 and v2, default a missing selector to v1 until its announced retirement, reject unsupported selectors before storage work, and emit standard lifecycle headers for v1.

JavaScript
async function getOrder(request, db) {
  const version = request.headers.get("X-API-Version") || "v2";
  const order = await db.orders.find(request.params.id);
  if (!order) return json(404, { error: "order not found" });

  if (version === "v1") {
    return json(
      200,
      { id: order.id, total: order.totalCents / 100 },
      {
        Deprecation: "true",
        Sunset: "2027-07-01",
      },
    );
  }

  return json(200, {
    ...order,
    total: { amount: order.totalCents / 100, currency: "USD" },
  });
}

generated code is illustrative, not from any one model

Open in playground
Report an error