El término Representational State Transfer (transferencia de estado representacional) nace en el 2000 con la tesis doctoral de Roy Fielding, uno de los principales desarrolladores de numerosos estándares web. Fielding describe la arquitectura en la que se basa la World Wide Web (protocolo HTTP, analizador HTML y XML, servidor web y de aplicaciones, etc.) de forma abstracta. Sin embargo, la arquitectura de REST no depende, en principio, de protocolos específicos y su concepto central son recursos que, según Fielding, han de cumplir los siguientes requisitos:
- Direccionabilidad: cada recurso, p. ej., un pedido, un producto o un artículo tiene que poder identificarse mediante un identificador de recursos uniforme o URI.
- Interfaz uniforme: se tiene que acceder a cada recurso de manera sencilla y unitaria con la ayuda de métodos normalizados. Algunos ejemplos son los métodos HTTP como “GET”, “POST” o “PUT”.
- Estructura cliente-servidor: en general, el principio cliente-servidor se aplica cuando el servidor pone a disposición un servicio cada vez que el cliente lo reclama.
- Ausencia de estado: la comunicación entre servidor y cliente es un proceso sin estado. En otras palabras: los mensajes que se intercambian contienen toda la información necesaria para entenderla, por lo que el servidor no necesita guardar información adicional entre dos mensajes en forma de sesiones, por mencionar un ejemplo. La ausencia de estado hace que los servicios de REST sean fácilmente escalables, ya que las solicitudes en el marco de la distribución de la carga se distribuyen de manera sencilla por diferentes servidores.
- Variedad de representaciones de los recursos: cada recurso puede presentarse de diferentes formas. En función de lo que el cliente exija, la información entregada tendrá que estar disponible, por ejemplo, en diferentes lenguajes o formatos, como HTML, JSON o XML.
- Hipermedia: la puesta a disposición de los recursos tiene lugar a través de hipermedia, p. ej., en forma de atributos “href” y “src” en documentos HTML o de elementos JSON o XML para la interfaz correspondiente. Por lo tanto, el cliente de una API REST navega según el principio de Hypermedia as the Engine of Application State (HATEOAS) por medio de las direcciones URL que facilita el servidor y que no requieren conocimientos adicionales sobre la interfaz.
Las estrictas normas de la arquitectura REST hacen posible el desarrollo de servicios bien estructurados, fáciles de integrar y que se comunican por medio de un protocolo normalizado(HTTP). Gracias a una estructura orientada a los recursos, en la concepción de un REST webservice o servicio web REST la búsqueda de protocolos específicos para aplicaciones no es necesaria, al contrario que en el caso de alternativas como SOAP.