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