Menu
CoddyTech

Descrevendo um corpo

Parte da seção APIs REST do Journey de Node.js da Coddy. Lição 7 de 25.

zod é um pacote instalado que verifica valores de acordo com uma descrição que você escreve. import { z } from 'zod' fornece o construtor de esquemas, z. Uma descrição pode substituir verificações de campos repetidas e escritas manualmente.

Um esquema descreve os valores que uma requisição pode conter. Com zod, z.object lista os campos e define uma regra para cada um. z.string() aceita texto; z.number() aceita um número.

const Book = z.object({
    title: z.string(),
    year: z.number(),
});

Ambos os campos são obrigatórios aqui. A última linha em exercise.js verifica o objeto em relação ao seu esquema; a próxima lição explica safeParse. Nesta primeira etapa, concentre-se nos nomes e tipos dos campos. Uma etapa posterior usará o resultado completo da validação para decidir o que a API deve retornar.

challenge icon

Desafio

Fácil

Este é um pequeno projeto de prática. A configuração já foi fornecida; edite apenas exercise.js.

Preencha o esquema Task com uma string title e um booleano done, usando z.boolean(). Enviar POST para /result com {"title":"Read","done":false} retorna {"valid":true}. A ausência de title ou um valor de done do tipo string retorna {"valid":false}.

A chamada inicial GET /result usa o exemplo fornecido {"title": "Read", "done": "false"}. Use POST /result com um corpo JSON para testar outras entradas.

O esquema inicial vazio aceita esse tipo incorreto; seu esquema completo deve retornar {"valid":false} na chamada GET inicial.

Experimente você mesmo

import { z } from 'zod';
const Task = z.object({});
export function exercise(body) {
    return { valid: Task.safeParse(body).success };
}

Todas as lições de APIs REST

Pratique por conta própria: Playground de Express