Introducción a la API REST de SharePoint 2013


Muy buenas a todos,

Comenzamos este año 2015 con nuevo contenido sobre SharePoint OnLine y SharePoint 2013, y lo hago sobre un tema que me va a servir como base para muchos de los post que voy a escribir en los primeros meses del año. Voy a hablar de los servicios REST que nos proporciona SharePoint para acceder y manipular la información de nuestros sitios de SharePoint. Esta funcionalidad, constituye otra de las grandes mejoras de esta versión de SharePoint, con respecto a sus antecesoras.

En este primer post, empezaré definiendo brevemente el servicio y cómo funciona, y la parte más interesante al menos para mi, al final del mismo, donde indicaré cómo podemos obtener a través de REST, información de interés de listas de SharePoint. Vamos a empezar con una definición de la MSDN del nuevo servicio REST.

SharePoint 2013 presenta como novedad el servicio de transferencia de estado representacional (REST), que es comparable a los modelos de objetos de cliente de SharePoint existentes. Ahora, los desarrolladores pueden interactuar de forma remota con los datos de SharePoint mediante cualquier tecnología que admita solicitudes web REST. Esto significa que los desarrolladores pueden llevar a cabo operaciones Create, Read, Update y Delete (CRUD) desde sus aplicaciones para SharePoint, soluciones y aplicaciones cliente, con las tecnologías web de REST y la sintaxis del estándar Open Data Protocol (OData)

¿Por qué son importantes los servicios REST?

En los últimos tiempos, estos servicios se han puesto de moda por su simplicidad con respecto a los web services convencionales basados en SOAP.

Además, se integran mucho mejor con los frameworks de Javascript como JQuery, AngularJS, etc. Este hecho está muy relacionado con el modelo de desarrollo que se promueve para SharePoint desde la nueva versión y que tiende, en la medida de lo posible, a usar cada vez menos intensivamente el modelo de objetos del servidor. Por tanto, disponer de un servicio REST con la funcionalidad completa, nos permite hacer esto de una forma sencilla.

Los resultados que devuelven estos servicios web pueden ser parseados en JSON y formato ATOM y por último el hecho de que cada consulta se hace con una única URL, permite que dichas consultas pueden ser fácilmente cacheadas.

¿Cómo funciona el servicio REST?

La arquitectura del servicio REST de SharePoint es la siguiente:

IC693632

Para acceder a los recursos de SharePoint mediante REST, se construyen solicitudes HTTP RESTful que van a seguir el esquema que veremos en la siguiente figura:

IC677158

Esta información la he sacado de la MSDN, del sitio oficial, al final del post, encontraréis las referencias para encontrar la información completa.

¿Como podemos usar el servicio REST en SharePoint 2013?

La referencia al servicio de un sitio web la tenemos en las siguientes URLs, http://nombredelsitio/_vti_bin/client.svc/ ó http://nombredelsitio/_api/. A partir de aquí, voy a dejar distintos ejemplo de cómo podemos usar el servicio para obtener información de listas.

Accediendo al objeto site o web
http://<nombredelsitio>/_api/site
http://<nombredelsitio>/_api/web
Accediendo a las listas de un sitio
http://<nombredelsitio>/_api/web/lists
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')
Usando el método getByTitle, podemos seleccionar una lista concreta
Accediendo a los elementos de una lista
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items
Obtiene todos los elementos de la lista
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items(n)
Obtiene el elemento n de la lista
Seleccionando campos de las listas
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items?$select=Title,Field1,Field2
Por medio de la operación $select indicamos que devuelva los campos Title, Field1 y Field2 de la lista para cada uno de los elementos
Filtrando listas
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items?$filter=Title eq ‘Example1’
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items?$filter=((Title eq ‘Example1’) or (Title eq ‘Example2’))
Se pueden hacer filtrados complejos usando operadores lógicos como and, or.
http://msdn.microsoft.com/es-es/library/office/fp142385(v=office.15).aspx#bk_supported
Más operaciones OData sobre las listas
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items?$top=n
La operación top, selecciona n elementos de la lista
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items?$skip=n
Permite saltar los n primeros elementos de la lista
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items?$skip=n&$top=m
Combinando adecuadamente estas dos operaciones podemos implementar de una forma muy sencilla la paginación por medio de los servicios web.
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items?$orderby=Title asc
http://<nombredelsitio>/_api/web/lists/getByTitle('listName ')/items?$orderby=Title asc,ID desc
Podemos usar $orderby para ordenar los resultados de la lista

Y hasta aquí por hoy, he querido dejar algunos ejemplos básicos de cómo usar el API REST de SharePoint 2013 para obtener información de listas de nuestro sitio, si bien, también disponemos de servicios para acceder a todos los elementos de SharePoint. En próximos post espero poner ejemplos de cómo insertar elementos, crear listas, modificarlas, usuarios, permisos, etc. Con API REST.

Os dejo también, antes de terminar, las referencias a la MSDN donde está toda la información que he utilizado a la hora de profundizar en todo lo que he tratado aquí, para quien quiera ampliar información:

http://msdn.microsoft.com/es-es/library/office/fp142380(v=office.15).aspx

http://msdn.microsoft.com/ES-ES/library/office/dn292556(v=office.15).aspx

http://msdn.microsoft.com/es-es/library/office/dn292557(v=office.15).aspx

http://msdn.microsoft.com/en-us/library/office/jj860569%28v=office.15%29.aspx#Samples

Un saludo a todos, y hasta la próxima.

Anuncios

3 comentarios en “Introducción a la API REST de SharePoint 2013

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s