Centrándonos en WCF, podemos encontrar algunas diferencias entre SOAP y REST, principalmente: - Simple Object Access Protocol (SOAP) utiliza XML sobre HTTP para la comunicación cliente/servidor, pero utiliza sólo el método POST de HTTP, por lo que no permite un buen mecanismo de cacheo.
- Representational State Transfer (REST) utiliza HTTP junto con una notación URL flexible. Evita la sobrecarga de SOAP, y puede utilizar los métodos GET, POST, PUT, DELETE, y MERGE de HTTP. Los datos devueltos utilizando la API REST no tienen por qué ser XML, pudiendo ser JSON ó AtomPub.
A continuación, se muestra una petición GET a un Servicio REST (listdata.svc, uno de los Servicios REST que vienen OOB en SharePoint 2010) que responde con un XML en formato Atom, es decir, un RSS Feed que podemos consumir de la manera que más nos guste. Como se puede ver, puede realizarse simplemente utilizando un navegador como Internet Explorer. En este caso particular, la información devuelta es una enumeración de las Listas y Librerías que contiene un Site. Es posible alterar la URL de la llamada al Servicio Web REST para personalizar la solicitud de información que estamos realizando. En el caso del Servicio Web anterior (listdata.svc), podríamos solicitar que nos devuelva los elementos de una Lista en particular cuyo nombre (el campo Title) comience por “tes”, ordenados por el campo Title, e incluyendo el campo Title y el campo Description: http://vwss4/_vti_bin/listdata.svc/Testlist()?$filter=startswith(Title,'tes')&$select=Title,Description&$orderby=Title Esto es sólo un ejemplo, se pueden hacer muchas cosas más, simplemente alterando la URL, como por ejemplo: - Acceder a un elemento de una lista conociendo su ID: http://vwss4/_vti_bin/listdata.svc/Testlist(3)
- Obtener todos los elementos de una lista ordenados descendientemente por el campo Title y ascendientemente por el campo Description: http://vwss4/_vti_bin/listdata.svc/Testlist()?$orderby=Title desc, Description asc
- Obtener los elementos del 11 al 20 de una lista bajo un criterio de ordenación, por ejemplo, para cuando deseemos paginar datos: http://vwss4/_vti_bin/listdata.svc/Testlist()?$skip=10&$top=10&$orderby=Title desc, Description asc
Podemos encontrar más información sobre la sintaxis que podemos utilizar en nuestras llamadas a los Servicios Web de REST, en la siguiente página: Using Microsoft ADO.NET Data Services Tanto los Servicios Web de ASP.Net como los Servicios Web de WCF que vienen OOB en SharePoint, se encuentran en la carpeta ISAPI de la carpeta raíz de SharePoint (el 14 hive), que a su vez está mapeada a los directorios virtual _vti_bin. Poco más por hoy. Como siempre, confío que la lectura resulte de interés. |