Füge die API-Route hinzu, die hier beschrieben ist: $ARGUMENTS
Falls Methode, Pfad oder Verhalten unklar sind, stelle vor dem Schreiben von Code eine kurze Frage.
Schritte
- Lies
src/app/api/links/route.ts,src/lib/http.tsundsrc/lib/links/schema.ts, um die bestehenden Muster zu übernehmen. Erfinde kein neues Fehlerformat. - Platziere die Eingabevalidierung in einem Zod-Schema in der entsprechenden
src/lib/<domain>/schema.ts, nicht inline in der Route. - Platziere den Datenzugriff in
src/lib/<domain>/store.ts. Der Routen-Handler parst nur, ruft den Store auf und bildet die Ergebnisse auf Antworten ab. - Erstelle
src/app/api/<path>/route.ts:export const dynamic = "force-dynamic";- Fehlerhaftes JSON →
errorResponse(400, "invalid_json") ZodError→validationError(err)- Nicht gefunden →
errorResponse(404, "not_found") - Dynamische Segmente:
{ params }: { params: Promise<{ id: string }> }undawait params.
- Schreibe
route.test.tsneben der Route. VerwendeuseTempDataFile()aus@/test/temp-data-fileund rufe die exportierten Handler mitnew Request(...)auf. Decke ab: Erfolg, jede Validierungsfehlerklasse, nicht gefunden und fehlerhaftes JSON, wenn ein Body akzeptiert wird. - Führe
npx vitest run <die neue Testdatei>aus, dannnpm run check, dannnpm run build. - Melde: den Endpunkt-Vertrag (Methode, Pfad, Request-Body, Antworten mit Statuscodes) und die ausgeführten Befehle mit ihren Ergebnissen.