Ajoute la route API décrite ici : $ARGUMENTS
Si la méthode, le chemin ou le comportement n'est pas clair, pose une courte question avant d'écrire du code.
Étapes
- Lis
src/app/api/links/route.ts,src/lib/http.tsetsrc/lib/links/schema.tspour correspondre aux motifs existants. N'invente pas un nouveau format d'erreur. - Place la validation d'entrée dans un schéma Zod dans le fichier
src/lib/<domain>/schema.tsapproprié, pas en ligne dans la route. - Place l'accès aux données dans
src/lib/<domain>/store.ts. Le gestionnaire de route se contente d'analyser, d'appeler le store et de mapper les résultats en réponses. - Crée
src/app/api/<path>/route.ts:export const dynamic = "force-dynamic";- JSON malformé →
errorResponse(400, "invalid_json") ZodError→validationError(err)- Non trouvé →
errorResponse(404, "not_found") - Segments dynamiques :
{ params }: { params: Promise<{ id: string }> }etawait params.
- Écris
route.test.tsà côté de la route. UtiliseuseTempDataFile()depuis@/test/temp-data-fileet appelle les gestionnaires exportés avecnew Request(...). Couvre : succès, chaque classe d'échec de validation, non trouvé, et JSON malformé lorsqu'un corps est accepté. - Exécute
npx vitest run <le nouveau fichier de test>, puisnpm run check, puisnpm run build. - Signale : le contrat du point de terminaison (méthode, chemin, corps de la requête, réponses avec codes d'état) et les commandes que tu as exécutées avec leur résultat.