Middle+
Fale sobre a regra de interface uniforme (Uniform Interface).
sobes.tech IA
Resposta da IA
A Regra de Interface Uniforme é uma das seis restrições arquiteturais do REST. Ela prescreve que o sistema utilize uma abordagem única e padronizada para a interação entre cliente e servidor. Isto simplifica e separa a arquitetura, melhora a visibilidade e facilita o desenvolvimento independente do cliente e do servidor.
Componentes da Interface Uniforme:
- Identificação de recursos: Os recursos devem ser identificáveis de forma única (geralmente através de URI). É a base para uma interação padronizada. Exemplo:
/usuarios/123,/produtos/ABC. - Manipulação de recursos através de suas representações: O cliente recebe uma representação do recurso (por exemplo, em JSON ou XML), que contém informações suficientes para modificar ou eliminar o recurso no servidor. O estado do recurso no servidor pode ser alterado enviando a representação modificada.
- Mensagens auto-descritivas: Cada mensagem (requisição ou resposta) deve conter informações suficientes para ser completamente compreendida sem o contexto do estado do servidor ou outras requisições. Isto inclui metadados: tipo de conteúdo, informações de cache, links para outros recursos, etc.
HTTP/1.1 200 OK Content-Type: application/json Cache-Control: max-age=3600 { "name": "Exemplo de Utilizador", "links": [ { "rel": "self", "href": "/usuarios/123" } ] } - Hipermedia como o Motor do Estado da Aplicação (HATEOAS): Permite ao cliente navegar dinamicamente entre recursos, com base em links hipermédia fornecidos pelo servidor na resposta. O cliente não precisa conhecer todos os URI de antemão, apenas o ponto de entrada. O servidor guia o cliente através de ações e recursos disponíveis.
{ "orderId": "A123", "status": "em processamento", "links": [ { "rel": "cancelar", "href": "/encomendas/A123/cancelar", "method": "POST" }, { "rel": "self", "href": "/encomendas/A123" } ] }
Em vez de caminhos codificados rigidamente, o cliente descobre a possibilidade de cancelar uma encomenda pela presença e conteúdo do link com rel: "cancelar".
Uma interface uniforme é fundamental para a escalabilidade e evolução de sistemas RESTful, pois reduz o acoplamento entre componentes.