여기에 설명된 API 라우트를 추가하세요: $ARGUMENTS
메서드, 경로 또는 동작이 명확하지 않으면 코드를 작성하기 전에 짧은 질문 하나를 먼저 하세요.
단계
src/app/api/links/route.ts,src/lib/http.ts및src/lib/links/schema.ts를 읽어 기존 패턴과 일치시키세요. 새로운 오류 형식을 만들지 마세요.- 입력 검증은 라우트 내부에 인라인으로 작성하지 말고, 해당
src/lib/<domain>/schema.ts에 Zod 스키마로 배치하세요. - 데이터 접근은
src/lib/<domain>/store.ts에 배치하세요. 라우트 핸들러는 파싱, 스토어 호출, 결과를 응답으로 매핑만 수행합니다. src/app/api/<path>/route.ts를 생성하세요:export const dynamic = "force-dynamic";- 잘못된 JSON →
errorResponse(400, "invalid_json") ZodError→validationError(err)- 찾을 수 없음 →
errorResponse(404, "not_found") - 동적 세그먼트:
{ params }: { params: Promise<{ id: string }> }및await params.
- 라우트 옆에
route.test.ts를 작성하세요.@/test/temp-data-file에서useTempDataFile()을 사용하고,new Request(...)로 내보낸 핸들러를 호출하세요. 다음을 포함해야 합니다: 성공, 각 검증 실패 클래스, 찾을 수 없음, 본문을 받는 경우 잘못된 JSON. npx vitest run <새 테스트 파일>을 실행한 후npm run check, 그 다음npm run build를 실행하세요.- 보고: 엔드포인트 계약(메서드, 경로, 요청 본문, 상태 코드가 있는 응답) 및 실행한 명령어와 그 결과.