Agrega la ruta de API descrita aquí: $ARGUMENTS
Si el método, la ruta o el comportamiento no están claros, haz una pregunta corta antes de escribir código.
Pasos
- Lee
src/app/api/links/route.ts,src/lib/http.tsysrc/lib/links/schema.tspara seguir los patrones existentes. No inventes un nuevo formato de error. - Coloca la validación de entrada en un esquema Zod en el archivo
src/lib/<dominio>/schema.ts, no en línea dentro de la ruta. - Coloca el acceso a datos en
src/lib/<dominio>/store.ts. El manejador de ruta solo parsea, llama al store y mapea los resultados a respuestas. - Crea
src/app/api/<ruta>/route.ts:export const dynamic = "force-dynamic";- JSON malformado →
errorResponse(400, "invalid_json") ZodError→validationError(err)- No encontrado →
errorResponse(404, "not_found") - Segmentos dinámicos:
{ params }: { params: Promise<{ id: string }> }yawait params.
- Escribe
route.test.tsjunto a la ruta. UsauseTempDataFile()de@/test/temp-data-filey llama a los manejadores exportados connew Request(...). Cubre: éxito, cada clase de fallo de validación, no encontrado y JSON malformado donde se acepte un cuerpo. - Ejecuta
npx vitest run <el nuevo archivo de prueba>, luegonpm run checky luegonpm run build. - Reporta: el contrato del endpoint (método, ruta, cuerpo de la solicitud, respuestas con códigos de estado) y los comandos que ejecutaste con su resultado.