Sobes.tech
Junior

O que é uma API REST?

sobes.tech IA

Resposta da IA

A API REST é um estilo arquitetónico para construir sistemas distribuídos. Os princípios principais do REST:

  • Sem estado: Cada pedido do cliente ao servidor deve conter toda a informação necessária para processamento. O servidor não mantém estado do cliente entre pedidos.
  • Cliente-Servidor: Divisão clara de responsabilidades entre cliente e servidor. O cliente envia pedidos, o servidor processa-os.
  • Cacheável: O servidor deve indicar se as respostas podem ser armazenadas em cache pelo cliente ou intermediários.
  • Sistema em camadas: O cliente não interage necessariamente diretamente com o servidor final; pode fazê-lo através de camadas intermédias (proxy, balanceadores de carga).
  • Interface uniforme: Forma única e padronizada de interagir entre cliente e servidor. Este princípio inclui:
    • Identificação de recursos: Os recursos (dados) são identificados por URL.
    • Manipulação de recursos através de representações: O cliente interage com os recursos, obtendo as suas representações (por exemplo, JSON, XML) e enviando novas representações para modificar.
    • Mensagens auto-descritivas: Cada mensagem contém informações suficientes para entender como processá-la.
    • HATEOAS (Hypertext As The Engine Of Application State): Os recursos devem conter links (hiperlinks) para recursos relacionados e ações disponíveis.

A API REST geralmente usa métodos HTTP padrão para realizar operações sobre recursos:

  • GET: Obter um recurso ou coleção de recursos.
  • POST: Criar um novo recurso.
  • PUT: Atualização completa de um recurso existente.
  • PATCH: Atualização parcial de um recurso existente.
  • DELETE: Eliminar um recurso.

Exemplo de representação JSON de um recurso:

{
  "id": 1, // Identificador
  "name": "Resource Name", // Nome do recurso
  "description": "Detailed description of the resource." // Descrição do recurso
}

Testar a API REST inclui verificar:

  • Funcionalidade (correção das respostas às requisições).
  • Tratamento de erros.
  • Desempenho.
  • Segurança.
  • Conformidade com a documentação.