From fe46676b321f93c29207bfb19bee6a6aaf4d178a Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Thu, 10 Jul 2025 13:13:49 +0200 Subject: Add api route --- src/pages/api/hello.ts | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/pages/api/hello.ts (limited to 'src/pages/api/hello.ts') diff --git a/src/pages/api/hello.ts b/src/pages/api/hello.ts new file mode 100644 index 0000000..eba198d --- /dev/null +++ b/src/pages/api/hello.ts @@ -0,0 +1,54 @@ +import type { APIRoute } from 'astro'; + +export const GET: APIRoute = async ({ request }) => { + const url = new URL(request.url); + const name = url.searchParams.get('name') || 'World'; + + return new Response( + JSON.stringify({ + message: `Hello, ${name}!`, + timestamp: new Date().toISOString(), + method: 'GET' + }), + { + status: 200, + headers: { + 'Content-Type': 'application/json', + }, + } + ); +}; + +export const POST: APIRoute = async ({ request }) => { + try { + const body = await request.json(); + + return new Response( + JSON.stringify({ + message: 'Data received successfully', + received: body, + timestamp: new Date().toISOString(), + method: 'POST' + }), + { + status: 200, + headers: { + 'Content-Type': 'application/json', + }, + } + ); + } catch (error) { + return new Response( + JSON.stringify({ + error: 'Invalid JSON', + timestamp: new Date().toISOString() + }), + { + status: 400, + headers: { + 'Content-Type': 'application/json', + }, + } + ); + } +}; \ No newline at end of file -- cgit v1.3.1