Describir un cuerpo
Parte de la sección API REST del Journey de Node.js de Coddy. Lección 7 de 25.
zod es un paquete instalado que comprueba los valores según una descripción que escribes. import { z } from 'zod' proporciona su creador de esquemas, z. Una descripción puede reemplazar las comprobaciones de campos repetidas escritas a mano.
Un esquema describe los valores que se permite que contenga una solicitud. Con zod, z.object enumera los campos y asigna una regla a cada uno. z.string() acepta texto; z.number() acepta un número.
const Book = z.object({
title: z.string(),
year: z.number(),
});En este caso, ambos campos son obligatorios. La última línea de exercise.js comprueba el objeto según tu esquema; en la siguiente lección se explica safeParse. Para este primer paso, céntrate en los nombres y tipos de los campos. En un paso posterior, se usará el resultado completo de la validación para decidir qué debe devolver la API.
Desafío
FácilEste es un pequeño proyecto de práctica. La configuración ya está hecha; edita solo exercise.js.
Completa el esquema Task con una cadena title y un booleano done, usando z.boolean(). Enviar POST a /result con {"title":"Read","done":false} devuelve {"valid":true}. Si falta el título o el valor de done es una cadena, devuelve {"valid":false}.
La solicitud inicial GET /result usa el ejemplo proporcionado {"title": "Read", "done": "false"}. Usa POST /result con un cuerpo JSON para probar otras entradas.
El esquema inicial vacío acepta este tipo incorrecto; el esquema completo debe indicar {"valid":false} en la solicitud GET inicial.
Pruébalo tú mismo
import { z } from 'zod';
const Task = z.object({});
export function exercise(body) {
return { valid: Task.safeParse(body).success };
}
Todas las lecciones de API REST
1Recursos y verbos
Recursos y URLCrear con POST4Navegadores, versiones y configuración
Qué es un origenPermitir otro origenCORSUna página que llama a la API2Validación y errores
Validar la entradaPractica por tu cuenta: Playground de Express