Sobes.tech
Middle

¿Cuáles son los principios de REST?

sobes.tech AI

Respuesta de la IA

Existen los siguientes principios de REST:

  • Arquitectura cliente-servidor: Separación de responsabilidades entre el cliente (consumidor del servicio) y el servidor (proveedor del servicio). Esto favorece la portabilidad del código del cliente y la escalabilidad del servidor.
  • Sin estado (Stateless): Cada solicitud del cliente al servidor debe contener toda la información necesaria para que el servidor pueda procesarla. El servidor no guarda estado del cliente entre solicitudes.
  • Cachable: El servidor puede indicar explícitamente si los datos pueden ser almacenados en caché por el cliente o por capas intermedias. Esto mejora el rendimiento y la escalabilidad.
  • Interfaz uniforme: La más importante, que incluye cuatro subprincipios:
    • Identificación de recursos: Los recursos se identifican mediante URIs únicos.
    • Manipulación de recursos a través de representaciones: El cliente interactúa con los recursos obteniendo sus representaciones (por ejemplo, en formato JSON o XML) y enviando nuevas representaciones para modificar el estado del recurso.
    • Mensajes auto-descriptivos: Cada mensaje contiene suficiente información para que el receptor entienda cómo procesarlo. Se utilizan cabeceras HTTP estándar.
    • Hipertexto como motor del estado de la aplicación (HATEOAS): El cliente debe encontrar información sobre acciones disponibles y transiciones posibles entre estados de la aplicación a partir de enlaces hipertexto integrados en las representaciones de los recursos.
  • Sistema en capas: La arquitectura puede estar organizada en capas intermedias (por ejemplo, proxies, caches, gateways) a través de las cuales pasan las solicitudes y respuestas. El cliente no sabe si se comunica directamente con el servidor final o a través de capas intermedias.
  • Código bajo demanda (opcional): El servidor puede extender temporalmente la funcionalidad del cliente transmitiendo código ejecutable (por ejemplo, JavaScript). Este principio es opcional para cumplir con REST.