AULA 36
MÓDULO 4
APIs REST
⏱ 45 min
JSON: o Formato de Dados da Web
JSON: tipos válidos, armadilhas, datas. JSON.stringify e parse. Validação com Zod. JSON Schema como documentação.
JSONstringifyparseZodschemavalidaçãoISO 8601
JSON — JavaScript Object Notation
JSON é o formato padrão para troca de dados na web. Leve, legível por humanos, parseável por máquinas. Substituiu XML por ser mais simples e diretamente mapeado para objetos JavaScript.
TIPOS VÁLIDOS EM JSON
string
"hello" "2024-01-15T10:30:00Z"
number
42 3.14 -100
boolean
true false
null
null
array
[1, "dois", true, null]
object
{"key": "value", "n": 42}
JSON não aceita
Undefined, funções, símbolos, Date nativa, Map, Set. Datas devem ser strings ISO 8601: "2024-01-15T10:30:00Z".JSON Schema — validar estrutura
JSON Schema define e valida a estrutura esperada de um JSON. É o que OpenAPI usa internamente para descrever request/response bodies.
zod no Node.js
Zod é a biblioteca de validação mais popular em TypeScript/Node. Define schemas em código e valida em runtime. Schema vira documentação automática com ts-to-zod.
javascript
// JSON — operações essenciais // Serializar objeto → string JSON const user = { id: 1, name: 'Ana', createdAt: new Date() } const json = JSON.stringify(user, null, 2) // {"id":1,"name":"Ana","createdAt":"2024-01-15T10:30:00Z"} // Parsear string JSON → objeto const parsed = JSON.parse(json) // Validação com Zod const { z } = require('zod') const UserSchema = z.object({ name: z.string().min(2).max(100), email: z.string().email(), age: z.number().int().min(18).optional() }) // Validar no endpoint app.post('/users', (req, res) => { const result = UserSchema.safeParse(req.body) if (!result.success) { return res.status(400).json({ errors: result.error.flatten() }) } // result.data está validado e com tipos corretos })
quiz · aula 36
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
Qual tipo de dado NÃO é válido em JSON?
QUESTÃO 02
Como representar uma data em JSON?
QUESTÃO 03
Para que serve JSON Schema (ou Zod)?
0/3