AULA 37
MÓDULO 4
APIs REST
⏱ 45 min
Status Codes HTTP
Os 4 grupos de status codes. 200, 201, 204. 400, 401, 403, 404, 409, 422, 429. 500, 503. Quando usar cada um.
status codes200201204400401403404409500
Status Codes HTTP
Status codes comunicam o resultado de uma requisição. São 3 dígitos: o primeiro indica a categoria. Usar o código semântico correto torna sua API auto-documentada.
2xx
Sucesso
A requisição foi recebida e processada com sucesso
200 OK
201 Created
204 No Content
3xx
Redirecionamento
O recurso foi movido
301 Moved
302 Found
304 Not Modified
4xx
Erro do cliente
Requisição com dados inválidos ou não autorizada
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
409 Conflict
422 Unprocessable
429 Too Many Requests
5xx
Erro do servidor
O servidor falhou ao processar requisição válida
500 Internal Error
502 Bad Gateway
503 Unavailable
Usando o código certo
401 vs 403: 401 = não autenticado ("quem é você?"). 403 = autenticado mas sem permissão ("você não pode isso"). 404 vs 410: 404 = não encontrado. 410 = existiu mas foi removido permanentemente.
400 vs 422
400: request malformado (JSON inválido, campo faltando). 422: JSON válido mas semântica inválida (email duplicado, saldo insuficiente). A distinção ajuda o cliente a saber se é bug de implementação ou conflito de negócio.
javascript
// Status codes — guia de uso no Express app.get('/users/:id', async (req, res) => { const user = await db.findById(req.params.id) if (!user) return res.status(404).json({ error: 'User not found' }) res.json(user) // 200 implícito }) app.post('/users', async (req, res) => { const exists = await db.findByEmail(req.body.email) if (exists) return res.status(409).json({ error: 'Email already exists' }) const user = await db.create(req.body) res.status(201).json(user) }) // Middleware de erro — pega tudo que não foi tratado app.use((err, req, res, next) => { console.error(err.stack) const status = err.statusCode || 500 res.status(status).json({ error: status < 500 ? err.message : 'Internal server error' }) })
quiz · aula 37
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
Qual a diferença entre 401 e 403?
QUESTÃO 02
Qual status code para criação bem-sucedida?
QUESTÃO 03
Se o cliente envia email duplicado no cadastro, qual é o código correto?
0/3