From 1c0df5a6eadf20d3dce490b5c5c87a3ee750fe34 Mon Sep 17 00:00:00 2001 From: yyamashita Date: Thu, 14 May 2026 23:14:49 +0900 Subject: Add JSON REST API: GET /api/events, /api/events/:id, /api/venues, /api/openapi.json Co-Authored-By: Claude Sonnet 4.6 --- app/routes/api.events.$id.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 app/routes/api.events.$id.ts (limited to 'app/routes/api.events.$id.ts') diff --git a/app/routes/api.events.$id.ts b/app/routes/api.events.$id.ts new file mode 100644 index 0000000..0f0f2e8 --- /dev/null +++ b/app/routes/api.events.$id.ts @@ -0,0 +1,22 @@ +/** + * GET /api/events/:id + */ +import type { Route } from "./+types/api.events.$id"; +import { getEvent } from "~/lib/db.server"; + +export async function loader({ params }: Route.LoaderArgs) { + const id = parseInt(params.id, 10); + if (Number.isNaN(id)) { + return Response.json({ error: "Invalid id" }, { status: 400 }); + } + + const event = getEvent(id); + if (!event) { + return Response.json({ error: "Not found" }, { status: 404 }); + } + + return Response.json( + { event }, + { headers: { "Cache-Control": "public, max-age=300" } } + ); +} -- cgit v1.2.3