O que é?
API REST é um conjunto de convenções e práticas que permitem a criação de interfaces de programação que podem ser acessadas por meio de protocolo HTTP. É um estilo arquitetônico usado para a criação de serviços web que são leves, escaláveis e fáceis de manter.
Princípios de uma API REST
- Cliente-Servidor: A arquitetura é dividida entre cliente e servidor, promovendo a separação de responsabilidades. O cliente é responsável por gerenciar a interface do usuário, enquanto o servidor cuida da lógica de negócios e do armazenamento de dados.
- Stateless (Sem Estado): Cada requisição do cliente para o servidor deve conter todas as informações necessárias para entender e processar a solicitação. O servidor não armazena nenhuma informação sobre o estado do cliente entre as requisições.
- Cacheability (Cacheabilidade): As respostas devem indicar se podem ou não ser armazenadas em cache, e por quanto tempo. Isso melhora o desempenho e a eficiência ao reduzir a carga no servidor.
- Interface Uniforme: A arquitetura REST depende de uma interface uniforme entre componentes, permitindo a comunicação independente do dispositivo ou plataforma. Isso é realizado através de:
- Identificação de Recursos: Cada recurso é identificado por um URL único.
- Representações de Recursos: Os recursos podem ser representados em diferentes formatos, como JSON, XML, etc.
- Métodos HTTP: Uso padronizado dos métodos HTTP (
GET
, POST
, PUT
, DELETE
, etc.).
- Sistema em Camadas: A arquitetura pode ser composta por várias camadas intermediárias, como proxies, gateways e firewalls, que ajudam a melhorar a escalabilidade e a segurança.
- Código Sob Demanda (Opcional): O servidor pode fornecer código executável ao cliente, como scripts JavaScript, que pode ser executado pelo cliente.
Métodos HTTP em API REST
GET
: Recupera informações de um recurso
GET /usuarios
POST
: Cria um novo recurso.
POST /usuarios
Content-Type: application/json
{
"nome": "DuH",
"email": "[email protected]"
}
PUT
: Atualiza um recurso existente.
PUT /usuarios/1
Content-Type: application/json
{
"nome": "DuH",
"email": "[email protected]"
}
DELETE
: Remove um recurso.
DELETE /usuario/1
Benefícios de APIs REST