Sobes.tech
Middle+

Habla sobre la regla de la interfaz uniforme (Uniform Interface).

sobes.tech AI

Respuesta de la IA

La regla de la Interfaz Uniforme es una de las seis restricciones arquitectónicas de REST. Prescribe que el sistema utilice un enfoque único y estandarizado para la interacción entre cliente y servidor. Esto simplifica y separa la arquitectura, mejora la visibilidad y facilita el desarrollo independiente del cliente y el servidor.

Componentes de la Interfaz Uniforme:

  1. Identificación de recursos: Los recursos deben ser identificables de manera única (generalmente a través de URI). Es la base para la interacción estandarizada. Ejemplo: /usuarios/123, /productos/ABC.
  2. Manipulación de recursos a través de sus representaciones: El cliente recibe una representación del recurso (por ejemplo, en formato JSON o XML), que contiene suficiente información para modificar o eliminar el recurso en el servidor. El estado del recurso en el servidor puede cambiar enviando la representación modificada.
  3. Mensajes auto-descriptivos: Cada mensaje (solicitud o respuesta) debe contener suficiente información para ser completamente entendido sin el contexto del estado del servidor u otras solicitudes. Esto incluye metadatos: tipo de contenido, información de caché, enlaces a otros recursos, etc.
    HTTP/1.1 200 OK
    Content-Type: application/json
    Cache-Control: max-age=3600
    
    {
      "name": "Ejemplo de Usuario",
      "links": [
        {
          "rel": "self",
          "href": "/usuarios/123"
        }
      ]
    }
    
  4. Hipermedia como el Motor del Estado de la Aplicación (HATEOAS): Permite al cliente navegar dinámicamente entre recursos, basándose en enlaces hipermedia proporcionados por el servidor en la respuesta. El cliente no necesita conocer todos los URI de antemano, solo el punto de entrada. El servidor guía al cliente a través de acciones y recursos disponibles.
    {
      "orderId": "A123",
      "status": "procesando",
      "links": [
        {
          "rel": "cancelar",
          "href": "/pedidos/A123/cancelar",
          "method": "POST"
        },
        {
          "rel": "self",
          "href": "/pedidos/A123"
        }
      ]
    }
    

En lugar de rutas codificadas rígidamente, el cliente descubre la posibilidad de cancelar un pedido mediante la presencia y contenido del enlace con rel: "cancelar".

Una interfaz uniforme es crucial para la escalabilidad y evolución de los sistemas RESTful, ya que reduce la acoplamiento entre componentes.