RESTful services son servicios que transfieren estado represntationally, de ahí el nombre de Transferencia de estado representacional. Lo que realmente significa significa que los datos se pasan de manera declarativa, es decir, se obtiene lo que se solicita.
REST es diferente de SOAP en que no es un protocolo, y no hay una especificación formal. SOAP se creó para simplificar la transferencia de datos entre aplicaciones mediante el uso de una interfaz común para acceder a la funcionalidad de forma remota. Desafortunadamente, para trabajar en general, SOAP es bastante complicado, y hacer solicitudes SOAP no es muy sencillo, ya que requiere análisis y generación de XML.
En su lugar, REST se basa en el protocolo de transferencia de hipertexto (HTTP) para hacer el trabajo pesado. Los servidores web y los scripts de servidor ya están construidos alrededor de trabajar dentro de HTTP. Hacer una solicitud utilizando REST es tan simple como una solicitud de URL, como visitar una página web. La API para un servicio RESTful puede reutilizar cualquiera de HTTP's methods y status codes para señalar cualquier error. En lugar de acceder a los datos que se almacenan en una base de datos a través de consultas sofisticadas y códigos especiales, los servicios RESTful permiten un acceso que es más similar al sistema de archivos estándar.
La parte clave de los servicios RESTful es la declarativa. Es probable que una solicitud al GET /widgets/109340
le proporcione los datos del widget con una identificación de 109340
. Digo "probable" porque no hay garantía. Depende del implementador. El punto es que puedes echar un vistazo a la solicitud REST y saber qué esperas que se devuelva. Con SOAP, es mucho más difícil saber si tiene un error de sintaxis.
Si no existe /widgets/109340
, en lugar de pasar de vuelta el cuerpo del mensaje, con algún valor específico para afirmar que existe el contenido, el servidor puede devolver un código de 404 Not Found
, y el usuario sabrá que el ID particular no lo hace existe.Si se devuelve 403
, el usuario sabrá que el artículo existe, pero que no tiene permisos para acceder a él. Estos códigos de respuesta de solicitud ya son compatibles con los programas que realizan solicitudes de URL porque son comunes a todos los servidores. Esto hace que las solicitudes REST sean mucho más flexibles.
REST también es flexible en el formato de salida, /widgets/109340
podría devolver un objeto JSON, pero no hay razón por la que no pueda devolver datos binarios, HTML, XML, SVG, video o cualquier otro formato de datos. Un CDN podría usar una API REST para servir contenido versionado que puede o no almacenarse en el sistema de archivos: GET /jQuery/1.0.0
, GET /jQuery/1.7.1
y GET /jQuery/latest
son todas solicitudes RESTful.
Voy a asumir que usted entiende lo que es Simple Object Access Protocol (SOAP)
[Acabo de actualizar este día de hoy] (http://stackoverflow.com/questions/4573305/rest-api-why-use-put -delete-post-get/4573426 # 4573426). – zzzzBov
Además, [Filadelfia] (http://en.wikiquote.org/wiki/Philadelphia_ (película)), pero parece que has citado incorrectamente. – zzzzBov
no hay mucha edad de cuatro años en esa publicación. En esencia, ¿qué es y cómo difiere de SOAP? Un simple ejemplo sería genial. –