Web Scripts
Web Scripts
AGENDA
• Definición del Framework Alfresco Web
Scripts.
• Arquitectura del Framework Web Scripts.
• Construcción de un API RESTful usando
Web Scripts (Java y JavaScript)
– Desarrollar Componentes Web Scripts de tipo GET.
– Desarrollar Componentes Web Scripts de tipo
POST.
Introducción a Alfresco Web Scripts
Introducción al Framework
Alfresco Web Scripts
Introducción al Framework Alfresco Web Scripts
CARACTERISTICAS
– Web Scripts ahora es un componente independiente
capaz de acoger otros Web Scripts en otros niveles del
Repositorio de Alfresco.
– Ahora URI Templates cumplen con JSR-311 (JAX-RS).
– Posibilidad de que pueda ejecutar un usuario
especifico el Web Script.
– Posibilidad de personalizar Web Scripts con una
configuración Web Script especifica.
– Acceso a las cabeceras de Respuesta.
– Procesar las solicitudes realizadas en el Body.
– Capacidad de Categorizar WebScript por familias.
Arquitectura de Alfresco Web Scripts
Plantillas URL
– Una plantilla URL es simplemente un url que
contiene tokens que pueden ser sustituidos con
valores reales. La sintaxis de una plantilla URL es
simple y sencilla. Ejemplos comunes de plantillas
URL incluyen:
Construcción de una API con Alfresco Web Scripts
Formatos de respuesta
– Un web script soporta intrínsicamente un formato de
respuesta por defecto. Un formato de respuesta es un
nombre corto registrado (atom) que identifica un
tipo/subtipo MIME (application/atom+xml).
– No obstante es posible para cualquier web script
soportar múltiples tipos de respuesta. Cuando este es
el caso es necesario determinar que formato se
escoge cuando un web script es invocado. Esto se
consigue codificando el formato en la URL ya sea
como un argumento (format) o como una extensión.
Cuando no se especifica de ninguna de estas formas
siempre se escoge el formato por defecto.
Construcción de una API con Alfresco Web Scripts
Formatos de respuesta
Construcción de una API con Alfresco Web Scripts
• Script Controlador
– Un web script puede opcionalmente ejecutar
código JavaScript en algunas invocaciones de su
respectiva URL. El código JavaScript puede realizar
consultas o actualizaciones contra el repositorio.
Además, el código JavaScript puede construir un
modelo de datos que se pasa a la plantilla de
respuesta adecuada para su posterior prestación.
Construcción de una API con Alfresco Web Scripts
• Script Controlador
Convención de Nombres
Construcción de una API con Alfresco Web Scripts
• Script Controlador
– La API JavaScript de Alfresco es completamente
accesible desde los web scripts.
– Sin embargo, hay algunas diferencias en cuanto a
la disponibilidad de los objetos raíz: los objetos
document, space y script ~~ no estarán
disponibles y los objetos ~~companyhome, person
y userhome solo estará disponible si se esta
autenticado.
Construcción de una API con Alfresco Web Scripts
• Objetos raíz adicionales:
– argsM: Una matriz asociativa de cualquier parámetro de URL (donde
cada llave es un nombre de parámetro y cada valor es una matriz que
contiene los valores de los parámetros, aunque sólo uno sea
suministrado) - complementa al objeto raíz args. Véase el ejemplo.
(disponible a partir de V2.1 Enterprise).
– url: Proporciona acceso a la url (o partes de la url) que desencadeno el
web script.
– formdata: Proporciona acceso a peticiones multipart/form-data
permitiendo la subida de archivos por medio de web scripts.
(Disponible a partir de V2.1 Enterprise).
– model: Un array asociativo vacío que puede ser rellenado por el
JavaScript. Los valores almacenado aquí estarán disponibles como
objetos raíz para las plantillas de respuesta.
– roothome: El nodo raíz del Repositorio.
– guest: Un booleano que indica si el web script se esta ejecutando
como "Guest"
– server: Un array de meta-datos que describen las propiedades del
servidor del Repositorio que aloja el web script.
Construcción de una API con Alfresco Web Scripts
• Plantilla de Respuesta
– La fase final de un web script es presentar una
respuesta para la petición HTTP. Se pueden
proporcionar multitud de formatos de respuesta.
Las respuestas son presentadas usando plantillas
FreeMarker.
Convención de Nombres
Construcción de una API con Alfresco Web Scripts
• Plantilla de Respuesta
– La API de Plantillas de Alfresco es completamente
accesible desde los web scripts. Sin embargo, hay
algunas diferencias en cuanto a la disponibilidad
de los objetos raíz: los objetos document, space y
template no estarán disponibles y los objetos
companyhome, person y userhome solo estará
disponible si se esta autenticado.
Construcción de una API con Alfresco Web Scripts
Conclusiones