Api Route (SSR)

소개

.astro 파일에서의 SSR Route

---
export const prerender = false;
const date = new Date();
---
<div>{date}</div>

해당 페이지는 SSR 모드로 동작한다. 따라서 매번 요청할때마다 시간이 바뀐다.

.ts 파일에서의 API Route

export const prerender = false;

export async function GET(){
    return new Response(JSON.stringify(new Date().toString()),{
        status:200,
        headers:{
            "content-type":"application/json"
        }
    });  
} 

src/pages 하위의 .ts 파일

SSR 동적 API

import type { APIRoute } from "astro";

export const prerender = false; 

export const GET: APIRoute = ({ params, url }) => {
  const { id } = params; 
  const users = {'0':'user0', '1':'user1', '2':'user2'} ;
  const user = users[id as keyof typeof users];
  return new Response(JSON.stringify({
    userId: id,
    message: `사용자 ${user || 'none'}의 실시간 데이터입니다.`,
    time: new Date().toString(), 
    query: url.searchParams.toString(),
  }));
}

src/pages/[id].ts 구성 시

SSR 동적 페이지

---
export const prerender = false;
const { id } = Astro.params; // 동적 라우팅 [id] 값
const { searchParams } = Astro.url; // URL의 쿼리 스트링 객체
---
<h1>{id}</h1>
<p>{searchParams.get('name')}</p>

src/pages/[id].astro 구성 시 user?name=아무개 일때