Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Dies 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

Übe selbstständig: Express-Playground