/** * 케이스 2: POST 요청 + readBody * * - 파일명에 .post.ts 접미사 → POST 요청만 처리 * - URL: POST /api/02-users * - readBody(event): 요청 본문(JSON)을 파싱해서 반환 * - setResponseStatus(): 응답 상태 코드 설정 (기본값 200) */ interface CreateUserBody { name: string; email: string; } export default defineEventHandler(async (event) => { // 요청 본문 파싱 (자동으로 JSON → 객체 변환) const body = await readBody(event); // 간단한 유효성 검사 if (!body.name || !body.email) { // createError: HTTP 에러 응답 생성 (케이스 6에서 자세히 다룸) throw createError({ statusCode: 400, statusMessage: "name과 email은 필수입니다.", }); } // 201 Created 상태 코드로 응답 setResponseStatus(event, 201); return { id: crypto.randomUUID(), name: body.name, email: body.email, createdAt: new Date().toISOString(), }; });