Arquitectura, buenas prácticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016

[SharePoint 2013] ¿Que es API REST? Ventajas e Inconvenientes

Muchas veces los apasionados a la tecnología nos ponemos a escribir/hablar/discutir sobre temas, saltándonos algunos pequeños detalles que pensamos que son insignificantes. Deducimos cosas que hacen pensar que el resto de personas nos entienden y no es así (estoy hablando de personas de nuestro mismo entorno profesional). Algo de este estilo es lo que me ha ocurrido recientemente con la famosa API REST de SharePoint, (me llaman el REST dentro de la oficina) que me he puesto a hablar de todo lo que podemos hacer, utilizar el servicio de búsqueda, la API Social, etc.  Todo eso escrito está muy bien, pero ¿os habéis planteado el porqué utilizarla? y lo que es más: qué beneficios nos da en nuestros desarrollos en lugar de hacer uso de otra de las APIS que vienen en SharePoint o bien no utilizarla porque sí.

Parte Teórica

¿Que es REST?

  • Técnica de arquitectura (bueno más bien unos principios)
  • Se utiliza para definir una interfaz web simple
  • Punto de acceso independiente de una base de datos
  • Permite la portabilidad entre plataformas y lenguajes (este último punto es una gran ventaja.

Una API representa una interfaz de comunicación entre componentes de software. Se trata del conjunto de llamadas a ciertas bibliotecas que ofrecen determinados servicios. Una API REST implica que una URL es la representación de un objeto o recurso, cuyo contenido se accede por HTTP.

API REST en SharePoint

De sobra hemos comentado que una de las grandes novedades que hay en SharePoint es que tiene una API REST como Dios manda. Y eso ¿qué significado tiene? Pues que desde cualquier dispositivo a traves de una petición HTTP podemos acceder a los recuros que nos ofrece SharePoint. ¿Cuáles son estos recursos? Pues aquí esta el kit de la cuestión y es que podemos acceder practicamente a todos los recursos que nos brinda SharePoint desde las caracteristicas del sitio, pasando por bibliotecas y lista, extendiendo por el servicio de perfiles sin olvidarnos del servicio búsqueda. Prácticamente a casi todos los recursos podemos acceder.

¿Que beneficios nos aporta?

El primer beneficio que nos aporta es que esta API Rest la podemos utilizar independientemente de lo que estemos desarrollando, es decir, si estoy desarrollando una APP para Windows 8 que me hace falta utilizar la información que tengo almacenada en una lista, no tengo problemas. Estoy desarrollando una APP móvil porque quiero que la gente que no esté delante de un portatil y esté al tanto de un determinado proceso de la empresa haciendo uso de la API Rest, se puede hacer. Es decir, independientemente del escenario en el que este desarrollando yo puedo utilizar SharePoint para lo que me proponga (naturalmente siempre que SharePoint sea la plataforma correcta para abarcar nuestro objetivo, ese matiz ya lo abordaré pero creo que este artículo del maestro Edin Kapic puede ser de gran ayuda).

¿Mucha gente lo que me dice si yo lo único que estoy desarrollando son WebParts porqué cambiar si no me aporta ninguna mejora? Bueno, lo primero de este pensamiento es que me indica de quien pregunta es que es algo reacio a cambiar su ámbito con el que se siente cómodo, que no quiere aprender cosas nuevas y me inquieta. Pero fuera de este pensamiento y opinión personal, el principal motivo para saber utilizar la API REST es que cuando tenga ante mí un proyecto nuevo, podré saber las opciones que puedo utilizar, y si no tengo otra opción más que hacer uso de la API Rest, pues no hay problema porque ya es algo que ya tengo aprendido de otros desarrollos. La API REST tiene algunas limitaciones y por ello debemos de saber cuándo utilizarla. Lo bueno es saber cómo funcionan todas y adaptarlas o usarlas según los requisitos del proyecto en cuestión.

Además, el uso de la API REST no es algo que ha surgido nuevo ahora en Microsoft, la realidad es que algunos especialistas y entendidos sobre el desarrollo de API Rest indican que ésta de SharePoint NO es REST pura, es decir, que aceptan pulpo como animal de compañía, pero bueno, eso ya es rizar el rizo. Y el uso de la API REST se aproxima más a los estándares web basándonos en OData, HTML5, JavaScript y CSS3. Lo que provoca que el abanico de posibles desarrolladores de SharePoint pueda incrementarse con otro tipo de perfiles. La desventaja que tienen estos desarrolladores sobre los que ya llevamos un tiempo desarrollando sobre SharePoint, es que conocemos la arquitectura de SharePoint, donde está almacenada la información y cómo la vas a utilizar.

Inconvenientes

Naturalmente como en todo en esta vida no todo es color de rosa, hay determinados aspectos que haciendo uso de la API Rest no nos lo dan de buenas a primeras. Por ejemplo, en una lista tengo una serie de campos «especiales» como pueden ser los campos de tipo «Choice», «Person», «Lookup» y que para obtener el dato entero tenemos que realizar diversas peculiaridades en la llamada REST como es incluir un parámetros indicando que nos extienda estos campos. Podéis consultar este link sobre estos aspectos para tenerlos en cuenta en vuestros desarrollos. Pero bueno, tambien es cierto que estos problemas nos ocurrían con otro tipo de API. El diseño de cualquier API Rest es algo complejo y no es la intención de este post.

Conclusión

Espero que con este post tengamos más claro el porqué utilizar la API Rest, cuales son sus beneficios y el porqué utilizarlo en nuestros desarrollos. Naturalmente también cuales son sus limitaciones y en base a ello poder elegir la opción más acorde con nuestros proyectos. En la informática en particular y en la vida en general no hay una única solución para tomar una decisión, pero cuanta más información tengamos menos posibilidades de equivocarnos tendremos.

mm

Sobre Adrián Díaz

Adrián Díaz es Ingeniero Informático por la Universidad Politécnica de Valencia. Es MVP de Microsoft en la categoría Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnologías Microsoft más de 10 años y desde hace 3 años está centrado en el desarrollo sobre SharePoint. Actualmente es Software & Cloud Architect Lead en ENCAMINA.
Esta entrada ha sido publicada en buenas practicas, sharepoint 2013 y etiquetada como , , . Enlace permanente .
Suscríbete a Desarrollando sobre SharePoint

Suscríbete a Desarrollando sobre SharePoint

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores