Junior
O que é REST?
sobes.tech IA
Resposta da IA
REST (Transferência de Estado Representacional) é um estilo arquitetónico para construir sistemas distribuídos, principalmente utilizado no projeto de serviços web. Baseia-se num conjunto de princípios e restrições que definem como os recursos web interagem entre si.
Princípios-chave do REST:
- Cliente-servidor: Separação clara de responsabilidades entre cliente e servidor.
- Sem estado (stateless): O servidor não armazena informações sobre o estado do cliente entre pedidos. Cada pedido contém toda a informação necessária para processamento.
- Cacheável: Os clientes podem armazenar em cache as respostas do servidor para melhorar o desempenho. O servidor indica explicitamente se a resposta pode ser cacheada.
- Sistema em camadas: O cliente pode interagir com uma camada intermédia (por exemplo, proxy, balanceador de carga) sem o saber.
- Código sob demanda (opcional): O servidor pode transferir código executável para o cliente (por exemplo, JavaScript), expandindo a funcionalidade do cliente.
- Interface uniforme: O princípio mais importante, que inclui:
- Identificação de recursos (URI).
- Manipulação de recursos através de representações (troca de dados num formato definido, por exemplo, JSON, XML).
- Mensagens auto-descritivas (as mensagens contêm toda a informação necessária para a sua compreensão).
- HATEOAS (Hypermedia as the Engine of Application State): O cliente navega entre estados da aplicação usando hiperligações contidas nas respostas do servidor.
API RESTful é uma implementação do estilo REST para serviços web, que utiliza métodos HTTP padrão (GET, POST, PUT, DELETE) para trabalhar com recursos.
// Exemplo de uso de métodos HTTP em API RESTful
// Obter recurso
// GET /api/products/1
// Criar recurso
// POST /api/products
// Corpo: { "name": "Novo Produto", "price": 10.50 }
// Atualizar recurso
// PUT /api/products/1
// Corpo: { "name": "Produto Atualizado", "price": 11.00 }
// Eliminar recurso
// DELETE /api/products/1