O que é REST API? O Guia do Desenvolvedor Back-end (Verbos HTTP e Padrões)
O conceito de **Headless CMS** e o uso de Next.js para Front-end só é possível por causa do protocolo de comunicação que rege a web moderna: a **API REST**.
Na **AtiveSite**, uma API bem projetada é a espinha dorsal de um produto escalável. APIs Ruins causam bugs, lentidão e inferno para o Front-end. Vamos dominar o padrão **REST**.
O Que é REST? (Representational State Transfer)
REST não é um protocolo, é uma **arquitetura**. Ela define um conjunto de princípios para construir serviços web. O princípio central é tratar tudo como um **Recurso**, acessível por uma URL, e manipulável usando os **Verbos HTTP**.
Os 4 Mandamentos do Desenvolvedor REST
A beleza do REST está em usar a mesma linguagem que seu navegador usa. O foco é na **URL** (o Recurso) e no **Verbo** (a Ação).
| Verbo HTTP | Ação CRUD (Banco de Dados) | Exemplo (Recurso: /produtos) |
|---|---|---|
| GET | Read (Ler) | `GET /produtos/123` (Buscar produto ID 123) |
| POST | Create (Criar) | `POST /produtos` (Criar um novo produto) |
| PUT / PATCH | Update (Atualizar) | `PUT /produtos/123` (Atualizar o produto ID 123) |
| DELETE | Delete (Deletar) | `DELETE /produtos/123` (Remover o produto ID 123) |
Códigos de Status (O que Responder)
Um desenvolvedor sênior comunica o status da requisição através do código HTTP, e não apenas de uma mensagem de erro genérica. Se você está monitorando sua API, esses códigos são cruciais.
- **2xx (Sucesso):** O mais comum é o **200 OK** (Requisição bem-sucedida) ou **201 Created** (Usado em POST para indicar que um novo recurso foi criado).
- **4xx (Erro do Cliente):** **400 Bad Request** (Dados inválidos) e **404 Not Found** (Recurso inexistente, como a página não encontrada). O **401 Unauthorized** é usado para autenticação.
- **5xx (Erro do Servidor):** **500 Internal Server Error** (Erro de código no seu Back-end) e **503 Service Unavailable** (Servidor sobrecarregado).
FAQ: Dúvidas Comuns sobre REST
1. Qual a diferença entre REST e SOAP?
SOAP é um protocolo rígido baseado em XML, pesado e complexo, ideal para ambientes corporativos legados. REST é uma arquitetura mais leve, baseada em JSON/HTTP, ideal para microsserviços e a web moderna. REST venceu a guerra da web.
2. E o GraphQL? Ele substitui o REST?
GraphQL (criado pelo Facebook) é uma alternativa onde o cliente decide quais dados quer. Em REST, o servidor define o que será retornado. GraphQL resolve o problema do ‘over-fetching’ (pegar mais dados do que o necessário), mas é mais complexo para pequenas APIs.
3. Por que URLs limpas são importantes no REST?
URLs limpas (Ex: `/produtos/123` em vez de `/api.php?action=get&id=123`) tornam a API mais intuitiva, mais fácil de usar e, até certo ponto, mais amigável para motores de busca (se a API for pública).
4. Como o REST lida com autenticação?
Geralmente via tokens (JWT – JSON Web Tokens) ou chaves de API. Como o REST é **Stateless**, o cliente envia o token no cabeçalho (Header) de cada requisição, e o servidor valida se o usuário tem permissão para a ação (autorização).
5. O que são Hypermedia Controls (HATEOAS)?
É o nível mais alto (e menos usado) da arquitetura REST. Significa que a resposta da API deve incluir links para as ações seguintes que o cliente pode tomar. Isso torna a API auto-descritiva.
6. Qual ferramenta eu uso para testar APIs REST?
Use o Postman ou o Insomnia. Eles permitem que você construa e teste requisições HTTP, insira cabeçalhos e visualize a resposta JSON, simulando o comportamento de um Front-end.
7. A API REST precisa retornar JSON?
Não. REST permite retornar qualquer formato (XML, HTML, texto). No entanto, o **JSON** se tornou o padrão de facto por ser leve, fácil de ler e simples de ser consumido pelo JavaScript (React, Vue) e outras linguagens.
8. O que é Idempotência no REST?
É a propriedade de uma operação que pode ser executada várias vezes sem alterar o resultado inicial. O **GET** e o **PUT** são idempotentes (fazer a mesma busca ou a mesma atualização 10x não muda o estado final). O **POST** não é (enviar 10 POSTs criará 10 recursos).
Conclusão
Dominar o padrão REST é dominar o Back-end. Ao usar os Verbos HTTP e os códigos de status de forma correta, você constrói um serviço intuitivo, **Stateless** e pronto para escalar para milhões de usuários.
O que é REST API? O Guia do Desenvolvedor Back-end (Verbos HTTP e Padrões)
Tags para suas próximas buscas:
REST API, Verbos HTTP, JSON, GraphQL, Stateless, Idempotência, Back-end Development, Códigos de Status HTTP, Postman, Insomnia, API Design, CRUD, SOAP vs REST, Microsserviços.

