Princípios REST, métodos HTTP e status codes.
/usuarios
plural, substantivo
/usuarios/42
recurso específico
/usuarios/42/posts
sub-recurso
/getUsuarios
verbo na URL
/usuario
singular
/deletar-usuario/42
ação na URL
Busca dados. Não altera nada no servidor.
Cria um novo recurso no servidor.
Atualiza um recurso existente.
Remove um recurso. Idempotente — deletar duas vezes tem o mesmo efeito.
HEAD: como GET mas só retorna headers. OPTIONS: retorna métodos permitidos (usado em CORS).
// Headers comuns na requisição
Content-Type: application/json
Authorization: Bearer eyJhbG...
Accept: application/json
Origin: https://meusite.com
// Headers comuns na resposta
Content-Type: application/json
Cache-Control: no-cache
Access-Control-Allow-Origin: *
X-RateLimit-Remaining: 95
application/json APIs REST
text/html páginas web
multipart/form-data upload de arquivos
application/x-www-form-urlencoded formulários
POST /api/produtos HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json
Authorization: Bearer eyJhbG...
{
"nome": "Notebook",
"preco": 2999.90,
"categoria": "Eletrônicos"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"_id": "64f1a2b3c4d5...",
"nome": "Notebook",
"preco": 2999.90,
"categoria": "Eletrônicos",
"createdAt": "2025-01-15..."
}
https://jsonplaceholder.typicode.com/posts e identifique o status code e headers/posts/1 e observe a diferença/posts enviando JSON no body/posts/99999 — qual o status?viacep.com.br/ws/01001000/json/) e identifique método, status e formato.
Criando uma API RESTful completa.