miércoles, 29 de mayo de 2013

SharePoint 2013 - Recuperar imagenes de libreria de imagenes mediante REST

En estos últimos días me he estado jugando un poco con la API REST para crear funcionalidad para SharePoint Online en donde, como todos ustedes ya saben, no se puede desplegar soluciones full trust.

La API REST de SharePoint es tan fácil de usar que combinándola con un poco de JavaScript y utilizando alguno de los frameworks más populares como jQuery, Knockout, JsRender, etc, etc, se pueden lograr cosas bastante funcionales y sobre todo muy visuales.

En esta ocasión voy a compartir un ejemplo de cómo recuperar las Urls de las imágenes que se encuentran en una librería de imágenes para mostrarlas en una WebPart.

Lo primero que debemos hacer y tal vez lo más “difícil” es construir la consulta ODATA que recupere los metadatos que necesitamos para obtener las urls de las imágenes.

En mi ejemplo la librería de imágenes se llama “Car Images” y se encuentra dentro de un subsitio WXYZ (el nombre de sus subsitio), por lo que la url podría quedar como la siguiente:

https://sitioprincipal/subsitio/_api/web/Lists/getbytitle('Car%20Images')/items?$Expand=File&$select=File/ServerRelativeUrl

La parte fundamental es la que esta marcada en negro, con esa consulta podemos recuperar las urls de las imágenes, sin embargo existe el inconveniente de que las urls que recuperamos pertenecen a las imágenes originales y que pueden ser muy grandes (como en mi caso) por lo que lo ideal es recuperar las imágenes pequeñas o thumbnails que se crean automáticamente cuando los archivos de imágenes se cargan en la biblioteca. Para lo anterior se debe modificar un poco la consulta para acceder a la carpeta “_t” que es en donde se encuentran esas imágenes miniatura, y quedaría de la siguiente manera:

https://sitioprincipal/subsitio/_api/web/GetFolderByServerRelativeUrl('Car%20Images/_t')?$Expand=Files&$select=Files/ServerRelativeUrl

Noten el uso de la función GetFolderByServerRelativeUrl para acceder a la carpeta “_t” y enumerar las imágenes miniatura. Una vez que ya tenemos la consulta lo siguiente es escribir un Html muy sencillo en el que se ejecute esta consulta y se pinten las imágenes en el HTML. Algo como lo siguiente podría funcionar:






Y si ponemos este Html dentro de un content editor...funciona!

Nótese que en este caso por simplicidad solo concateno texto para formar el HTML, algo que podría hacerse mucho mas elegante con Knockout por ejemplo, pero eso sera en un siguiente post.

Happy coding!

0 comentarios:

Etiquetas

SharePoint 2010 (38) Microsoft (32) Desarrollo SharePoint (31) Gerardo Reyes Ortiz (27) SharePoint (20) SharePoint 2013 (18) Errores SharePoint (12) México (10) PowerShell (9) Silverlight (8) Visio Services (7) Features (6) MVP (6) Silverlight 3 (6) WebCast (6) Workflows (6) Configuracion SharePoint 2010 (5) D.F. (5) API REST (4) Configuracion SharePoint 2010; (4) Troubleshooting (4) Visual Studio 2010 (4) Visual studio (4) WSS (4) Web parts (4) Apps (3) Comunidad SharePoint (3) Configuración SharePoint 2013 (3) ODATA (3) SharePoint Server (3) SharePoint; Instalación SharePoint; Troubleshooting; Search Service (3) Silverlight 3.0 (3) Silverlight Toolkit (3) WebParts (3) javascript (3) jquery (3) Eventos SharePoint (2) Office 2010 (2) PeoplePicker (2) REST (2) SQL Server (2) Scripting (2) Search Service Application (2) SharePoint Designer (2) UPA (2) UPS (2) Workflows SharePoint (2) host header (2) Apps Development (1) Big Bang (1) CAS (1) CSOM (1) Codeplex (1) CompartiMOSS (1) Configuracion SharePoint 2010; Errores SharePoint (1) Configuracion SharePoint 2010; SharePoint 2010 (1) Custom Actions (1) Custom Editor Parts (1) Delegate Controls (1) Deployment (1) DisableLoopbackCheck (1) Document Library (1) Entrevista (1) Examenes de Certificación (1) Extract WSP (1) FBA (1) FS4SP (1) Fakes (1) Fast Search Server 2010 For SharePoint (1) Fiddler (1) HTTP.SYS (1) HTTPS (1) JSON (1) Language Pack's (1) Latam (1) MAXDOP (1) MCSM (1) MSExpertos (1) MVC (1) Microsoft México (1) Microsoft; Codeplex; Screencast; (1) My Sites (1) SQL Server 2012 (1) SQL Server Reporting Services (1) Screencast (1) Screencast; (1) Service Applications (1) Service Pack (1) SharePoint 2007 (1) SharePoint 2010 SP 1 (1) SharePoint API (1) SharePoint Conference (1) SharePoint Emulators (1) SharePoint Farm (1) SharePoint Health Analyzer (1) SharePoint Magazine (1) SharePoint Online (1) SharePoint Search (1) SharePoint Test (1) SharePoint; Desarrollo SharePoint (1) Shims (1) Simposio (1) Simposio Latinoamericano (1) SkyDrive Pro (1) Soporte Microsoft (1) Templates (1) Tip (1) VSeWSS (1) Virtual Machine (1) Visual Studio 2012 (1) WCF (1) WSS; IIS 7 (1) Web API (1) Web Content Management (1) Web Services (1) Windows 8 (1) Windows Live ID (1) Xml (1) appcmd (1) iOS (1) jqGrid (1) onload function (1)