REST
Representational State Transfer (Transferência de Estado Representacional)
O que é API?
- API (Application Programming Interface) é um conjunto de regras que permite que sistemas diferentes se comuniquem entre si.
- Funciona como uma ponte entre aplicações, trocando informações de forma segura e padronizada.
- Exemplo: Um app de clima usa a API de meteorologia para buscar a previsão do tempo.
O que é REST?
- REST (Representational State Transfer) é um estilo arquitetural para APIs baseado em regras e boas práticas.
- Características principais:
- Comunicação Stateless (cada requisição é independente)
- Uso dos verbos HTTP corretamente
- Transferência de dados geralmente em JSON
- Interface uniforme e padronizada
- Permite cacheamento, versionamento, e divisão em camadas
HATEOAS (Hypermedia as the Engine of Application State) é um importante conceito dentro do design de APIs RESTful. Ele descreve uma arquitetura onde o cliente pode navegar pelos recursos da API através de links fornecidos dinamicamente junto com as respostas das requisições. Isso significa que o servidor não apenas envia os dados solicitados, mas também inclui links que permitem ao cliente descobrir novas ações e recursos sem precisar de conhecimento prévio além do ponto inicial da API.
REST é um estilo arquitetural que define regras para construção de APIs, como uso de verbos HTTP, comunicação stateless, e interface uniforme. Já RESTful é o termo usado para se referir a uma API que implementa corretamente todos esses princípios definidos pelo REST. Ou seja, toda API RESTful é baseada em REST, mas só pode ser chamada assim se seguir todas as suas regras — caso contrário, é apenas uma API "inspirada" em REST, mas não RESTful de verdade.
🛠️ Métodos HTTP principais (REST)
Método | Função | Exemplo prático |
---|---|---|
GET | Buscar dados (sem alterar) | Listar produtos, buscar usuário |
POST | Criar novos dados | Cadastrar novo cliente |
PUT | Atualizar recurso inteiro | Atualizar dados completos do perfil |
PATCH | Atualizar parcialmente um recurso | Atualizar só o email do usuário |
DELETE | Excluir dados | Remover uma postagem |
OPTIONS | Informar quais métodos o servidor aceita | Verificar se POST/GET/PUT são permitidos |
HEAD | Buscar apenas o cabeçalho da resposta | Verificar se recurso existe sem baixar conteúdo |
TRACE | Testar o que chega no servidor | Diagnóstico de rotas e proxies |
CONNECT | Estabelecer tunelamento (usado em HTTPS) | Usado para criar conexões seguras |
- OPTIONS é muito usado em CORS (Cross-Origin Resource Sharing).
Bora Treinar? https://marciourakawa.com.br/rest.html
📢 Principais Status Codes (HTTP)
Código | Significado | Quando acontece? |
---|---|---|
200 OK | Requisição bem-sucedida | GET ou POST ok |
201 Created | Recurso criado com sucesso | Após POST |
204 No Content | Sucesso, mas sem corpo de resposta | DELETE bem-sucedido |
301 Moved Permanently | Recurso movido para outra URL | Redirecionamento permanente (HTTP ➔ HTTPS) |
400 Bad Request | Requisição malformada | Dados incorretos no envio |
401 Unauthorized | Não autorizado (login necessário) | Falta de token ou login |
403 Forbidden | Acesso proibido | Sem permissão, mesmo autenticado |
404 Not Found | Recurso não encontrado | ID ou URL inexistente |
405 Method Not Allowed | Método HTTP não permitido no endpoint | Ex.: tentar DELETE em rota que aceita só GET |
500 Internal Server Error | Erro no servidor | Falha interna no sistema |
503 Service Unavailable | Serviço indisponível | Servidor sobrecarregado ou em manutenção |