Einen Body beschreiben
Teil des Abschnitts REST-APIs der Node.js-Journey von Coddy. Lektion 7 von 25.
zod ist ein installiertes Paket, das Werte anhand einer Beschreibung prüft, die du verfasst. import { z } from 'zod' stellt seinen Schema-Builder z bereit. Eine Beschreibung kann wiederholte, von Hand geschriebene Prüfungen einzelner Felder ersetzen.
Ein Schema beschreibt, welche Werte eine Anfrage enthalten darf. Mit zod listet z.object die Felder auf und weist jedem eine Regel zu. z.string() akzeptiert Text; z.number() akzeptiert eine Zahl.
const Book = z.object({
title: z.string(),
year: z.number(),
});Hier sind beide Felder erforderlich. Die letzte Zeile in exercise.js prüft das Objekt anhand deines Schemas; in der nächsten Lektion wird safeParse erklärt. Konzentriere dich bei diesem ersten Schritt auf die Feldnamen und Typen. In einem späteren Schritt wird das vollständige Validierungsergebnis verwendet, um zu entscheiden, was die API zurückgeben soll.
Aufgabe
EinfachDies ist ein kleines Übungsprojekt. Die Einrichtung ist vorgegeben; bearbeite nur exercise.js.
Fülle das Task-Schema mit einer Zeichenkette title und einem booleschen Wert done aus und verwende dabei z.boolean(). Ein POST an /result mit {"title":"Read","done":false} gibt {"valid":true} zurück. Ein fehlender Titel oder ein Zeichenkettenwert für done gibt {"valid":false} zurück.
Der anfängliche GET /result verwendet das bereitgestellte Beispiel {"title": "Read", "done": "false"}. Verwende POST /result mit einem JSON-Body, um andere Eingaben auszuprobieren.
Das leere Ausgangsschema akzeptiert diesen falschen Typ; dein vervollständigtes Schema muss beim anfänglichen GET {"valid":false} melden.
Probier es selbst
import { z } from 'zod';
const Task = z.object({});
export function exercise(body) {
return { valid: Task.safeParse(body).success };
}
Alle Lektionen in REST-APIs
1Ressourcen und Verben
Ressourcen und URLsErstellen mit POST4Browser, Versionen und Konfiguration
Was ist ein Origin?Einen anderen Origin zulassenCORSEine Seite, die die API aufruft2Validierung und Fehler
Eingaben validierenÜbe selbstständig: Express-Playground