En ocasiones es necesario navegar programáticamente a través de la estructura de carpetas de una librería de documento o de una carpeta en específico, esta actividad es bastante sencilla realizándola mediante la API de servidor de SharePoint con la que hemos venido trabajando los últimos años.
Sin embargo a partir del nuevo paradigma de desarrollo de apps para SharePoint 2013, nos enfrentamos a nuevas formas de realizar los que antes ya hacíamos con API del servidor utilizando y nos lleva a utilizar métodos mucho más estándares y que son compatibles con el nuevo modelo de apps, me refiero a utilizar la API REST de SharePoint 2013.
En esta ocasión voy a ejemplificar como cumplir con la tarea de listar las carpetas de una librería de documentos mediante la api REST, lo primero que necesitamos en comenzar a construir la consulta REST a utilizar contra una librería de documentos, en principio la siguiente consulta nos mostraría la información de una librería de documentos:
https://myportal.sharepoint.com/_api/web/GetFolderByServerRelativeUrl('/Folders%20Library')
Donde “Folders Library” es el nombre de la librería de documentos de la cual quiero mostrar sus carpetas. Noten el uso del método GetFolderByServerRelativeUrl que se encuentra a nivel del “objeto” Web y el cual nos permite abrir un folder en particular, en este caso la librería de documentos en si misma.
Lo siguiente es utilizar la opción $expand para acceder a la “propiedad” Folders de la librería de documentos, algo como lo siguiente:
https://myportal.sharepoint.com/_api/web/GetFolderByServerRelativeUrl('/Folders%20Library')?$expand=Folders
Por ultimo solo usamos la opción $select para seleccionar los campos que necesitamos, recuerden que siempre debemos limitar la cantidad de información que solicitamos al servidor, solo para fines de optimizar nuestro desarrollo, la url de consulta final:
https://myportal.sharepoint.com/_api/web/GetFolderByServerRelativeUrl('/Folders%20Library')?$select=Folders/name,Folders/ServerRelativeUrl,Folders/ItemCount&$expand=Folders
Una vez que tenemos lista la consulta solo agrego un código de ejemplo que pinta las carpetas que se encuentran dentro de la librería de documentos como un listado, Show me the money!
El script:
El resultado:
Happy Coding!