Una API (Application Programming Interface) es una interface implementada y ofrecida por un programa de software que habilita a otras aplicaciones para interactuar con esta, o habilitar a los desarrolladores para escribir otras aplicaciones sobre esta. Una API puede ser expuesta en muchas formas diferentes, tales como clases de modelo interno e implementación-uso con el cual tu puedes escribir tu programa, o como diferentes servicios, por ejemplo, servicios web (web services). Como un desarrollador de soluciones de un Enterprise framework, tu necesitas ser competente sobre las APIs ofrecidas y expuestas por el framework.
Alfresco, como cualquier otro framework, expone un numero de APIs incluyendo Alfresco SDK (software development kit) un conjunto de herramientas de desarrollo que permiten la creacion de una aplicacion para un paquete de software exacto o framework y JavaScript API.
La JavaScript API es un unico modelo para escribir programas y servicios usando JavaScript. La API habilita a desarrolladores para escribir scripts que pueden acceder, modificar, o crear varios objetos del repositorio de Alfresco tales como usuarios, nodos, grupos, tags, categorias, etc.
JavaScript APIs disponibles
Alfresco JavaScript API expone todos los objetos importantes del repositorio como objetos JavaScript que pueden ser usados en un archivo de Script. La API sigue el modelo de programacion orientada a objetos para los bien conocidos conceptos de Alfresco como Nodos, Propiedades, Asociaciones, y Aspectos.
La JavaScript API es capaz de realizar varias funciones esenciales para el desarrollador del script, tales como:
- Create Node, Update Node: Puedes crear, actualizar nodos o actualizar archivos usando estos.
- Check In, Check Out: Puedes programaticamente revisar y escribir contenido.
- Access Rights Management Permissioning: Puedes manejar los aspectos de seguridad del contenido.
- Transformation: Puedes transformar tu contenido usando esto. Por ejemplo puedes generar una version PDF de tu documento MS-Office
- Tagging: La Tagging API te ayudara a etiquetar tus contenidos.
- Classifying: Puedes categorizar o clasificar tu contenido usando esto.
- People: Usando estas APIs, puedes manipular todas las operaciones relacionadas con usuarios y grupos en tu script; tales como crear un nuevo usuario, cambiar el password de un usuario, etc.
- Searching: Uno de los mas importantes y poderosas APIs expuestas. Puedes buscar tu contenido usando estas APIs. Puedes realizar busquedas basadas en Lucene o XPath usando estas APIs
- Workflow: Puedes manejar las tareas y flujos de trabajo en tu sistema usando estas APIs y servicios.
- Thumbnail: Expone APIs para manejar las operaciones de thumbnail varios items de contenido.
- Node operations: Puedes usar estas API para realizar varias funciones relacionadas con nodos tales como manejar propiedades, manejar aspectos, copiar, borrar, mover, etc.
Asi, como vemos, bastante mas cosas pueden realizarse en un archivo JavaScript usando estas APIs.
El modelo de JavaScript API
Alfresco provee un numero de objetos en la JavaScript API - estos son mas usualmente llamados Root Scope Objects. Estos objetos son el punto de entrada en el repositorio. Cada uno de los objetos de nivel de raiz referencia a una entidad particular o punto funcional en el repositorio. Por ejemplo, userhome referencia al nodo del espacio home del usuario actual. Cada uno de estos objetos presenta un numero de propiedades y funcionalidades, asi habilitando al escritor de script para implementar muchos requerimientos diferentes. Por ejemplo, la sentencia userhome.name retornará el nombre de la carpeta root del usuario actual.
Algunos objetos de raiz importantes y mas frecuentemente usados son:
- Companyhome: Retorna el objeto de nodo de company home
- Userhome: Retorna el nodo de carpeta home del usuario actual
- Person: Representa el objeto de persona del usuario actual
- Space: El objeto de espacio actual
- Document: Retorna el documento seleccionado actualmente
- Search: Ofrece APIs totalmente funcionales para busquedas
- People: Encapsula todas las funcionalidades relacionadas a usuarios, grupos, roles, permisos, etc.
- Sites: Expone las funcionalidades de sevicio de sitio
- Actions: Provee metodos de invocacion para registrar acciones
- Workflow: Manipula todas las funcionalidades relacionadas con implementacion de flujos de trabajo con el repositorio
Entre estos objetos, companyhome, userhome, person, space, y document, representan objetos de nodo de Alfresco y permiten acceder a las propiedades y aspectos del objeto de nodo correspondiente. Cada uno de los objetos de nodo provee un numero de APIs las cuales son denominadas ScriptNode API.
Las otras - search, people, sites, workflow, y actions- exponen muchos metodos que podrian ayudar a implementar requerimientos especificos de negocio. Por ejemplo, si tu quieres escribir un script que busque algunos documentos y contenidos, podrias usar la API search. Si quieres crear un nuevo usuario - la API people, te ayudará-