Pular para o conteúdo principal

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étodoFunçãoExemplo prático
GETBuscar dados (sem alterar)Listar produtos, buscar usuário
POSTCriar novos dadosCadastrar novo cliente
PUTAtualizar recurso inteiroAtualizar dados completos do perfil
PATCHAtualizar parcialmente um recursoAtualizar só o email do usuário
DELETEExcluir dadosRemover uma postagem
OPTIONSInformar quais métodos o servidor aceitaVerificar se POST/GET/PUT são permitidos
HEADBuscar apenas o cabeçalho da respostaVerificar se recurso existe sem baixar conteúdo
TRACETestar o que chega no servidorDiagnóstico de rotas e proxies
CONNECTEstabelecer 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ódigoSignificadoQuando acontece?
200 OKRequisição bem-sucedidaGET ou POST ok
201 CreatedRecurso criado com sucessoApós POST
204 No ContentSucesso, mas sem corpo de respostaDELETE bem-sucedido
301 Moved PermanentlyRecurso movido para outra URLRedirecionamento permanente (HTTP ➔ HTTPS)
400 Bad RequestRequisição malformadaDados incorretos no envio
401 UnauthorizedNão autorizado (login necessário)Falta de token ou login
403 ForbiddenAcesso proibidoSem permissão, mesmo autenticado
404 Not FoundRecurso não encontradoID ou URL inexistente
405 Method Not AllowedMétodo HTTP não permitido no endpointEx.: tentar DELETE em rota que aceita só GET
500 Internal Server ErrorErro no servidorFalha interna no sistema
503 Service UnavailableServiço indisponívelServidor sobrecarregado ou em manutenção