server/api 파일에서 실제 GET JSON endpoint를 만듭니다.
server/api/courses.get.ts는 /api/courses GET 경로로 자동 등록됩니다. defineEventHandler 반환값은 JSON 응답으로 직렬화됩니다.
입력 query를 검증하고 공개 가능한 DTO만 반환합니다.
DB 연결과 업무 로직은 handler에서 별도 계층으로 분리해 테스트와 재사용성을 높입니다.
DB entity와 내부 필드를 필터 없이 그대로 반환하지 마세요.
로컬 프로젝트에서 확인해보세요published query가 true일 때 공개 강좌만 반환하도록 바꾸세요.
// server/api/courses.get.ts
export default defineEventHandler(() => ({
items: [{ id: "nuxt", title: "Nuxt 실무", published: true }],
count: 1,
}));