Décrire un corps
Fait partie de la section API REST du Journey Node.js de Coddy. Leçon 7 sur 25.
zod est un package installé qui vérifie les valeurs par rapport à une description que vous écrivez. import { z } from 'zod' fournit son générateur de schémas, z. Une seule description peut remplacer des vérifications de champs répétées écrites à la main.
Un schéma décrit les valeurs qu’une requête est autorisée à contenir. Avec zod, z.object répertorie les champs et attribue une règle à chacun d’eux. z.string() accepte du texte ; z.number() accepte un nombre.
const Book = z.object({
title: z.string(),
year: z.number(),
});Ici, les deux champs sont obligatoires. La dernière ligne de exercise.js vérifie l’objet par rapport à votre schéma ; la leçon suivante explique safeParse. Pour cette première étape, concentrez-vous sur les noms et les types des champs. Une étape ultérieure utilisera le résultat complet de la validation pour décider de ce que l’API doit renvoyer.
Défi
FacileIl s’agit d’un petit projet d’entraînement. Sa configuration est fournie ; modifie uniquement exercise.js.
Complète le schéma Task avec une chaîne title et un booléen done, en utilisant z.boolean(). Une requête POST vers /result avec {"title":"Read","done":false} renvoie {"valid":true}. Un titre manquant ou une valeur done de type chaîne renvoie {"valid":false}.
La requête initiale GET /result utilise l’exemple fourni {"title": "Read", "done": "false"}. Utilise POST /result avec un corps JSON pour essayer d’autres entrées.
Le schéma de départ vide accepte ce type incorrect ; ton schéma complété doit renvoyer {"valid":false} lors de la requête GET initiale.
Essayez vous-même
import { z } from 'zod';
const Task = z.object({});
export function exercise(body) {
return { valid: Task.safeParse(body).success };
}
Toutes les leçons de API REST
1Ressources et verbes
Ressources et URLCréer avec POST4Navigateurs, versions et configuration
Qu’est-ce qu’une origineAutoriser une autre origineCORSUne page qui appelle l’API2Validation et erreurs
Valider les entréesEntraînez-vous par vous-même : Playground Express