Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Web Scripts y Busquedas en Alfresco PDF
Web Scripts y Busquedas en Alfresco PDF
Web Scripts: Se sigue un estilo llamado REST (REpresentational State Transfer). Las llamadas a mtodos no son el centro de atencin. En su lugar, tenemos URIs (Uniquely Identified Resources) y un interfaz de acceso mediante HTTP.
Permite ver a los repositorios de contenidos de Alfresco como una coleccin de documentos interrelacionados entre s.
Qu es un Web Script
Es un servicio ligado a una URI que responde a mtodos HTTP. Mtodos HTTP: GET, POST, PUT y DELETE.
Web Scripts de presentacin: Permiten construir interfaces de usuario. Tpicamente, renderizan HTML. Pueden ser almacenados en el servidor de Alfresco, pero tambin en un servidor web separado.
Una o ms plantillas de Freemaker: Se conocen como vistas. Se encargan de renderizar la salida en el formato adecuado. Por ejemplo, HTML o XML. Tiene acceso a todos los argumentos de la URI y a los datos construidos por el script de control, si es que existe.
10
11
URIs
De la forma: http[s]://<host>:<port>/[<contextPath>/]/<servicePath>[/<scriptPath>][?<scriptArgs>] host es el nombre o direccin del servidor que alberga el Web Script. port es el puerto a travs del cual el Web Script se expone en el servidor. contextPath es el path donde la aplicacin est desplegada, generalmente /alfresco. servicePath es el path al cual los servicios de Alfresco estn mapeados, generalmente /service. scriptPath es el path especfico al Web Script. scriptArgs son los argumentos que se le pasan al Web Script.
12
Ejemplos de URIs
http://localhost:8080/alfresco/service/api/path/Workspace/SpacesStore/Company%20Home/children http://localhost:8081/share/service/mytasks?priority=1
13
Autenticacin
Algunos Web Scripts pueden requerir que el invocador se autentique. Cada Web Script dicta sus propios requerimientos de autenticacin. Si un Web Script requiere autenticacin y el invocador no est autenticado, se inicia el proceso de autenticacin correspondiente. Una vez autenticado, se realiza la invocacin al Web Script propiamente dicha.
14
Ejemplo de autenticacin
Autenticacin soportada por el Explorer Web Client de Alfresco. Copiamos la URI del Web Script Retrieve Day Events. Hacemos logout y cerramos el navegador. Abrimos de nuevo el navegador e introducimos la URI del Web Script. Veremos que pide autenticacin: usamos admin, admin.
15
16
17
Crear la plantilla de respuesta. Create -> Create Content. Nombre, ej: hello2.get.html.ftl. Plain text. Contenido de response_hello.
18
19
20
21
22
23
// log each argument (assuming only one value has been provided for each) for (arg in args) { logger.log(arg + "=" + args[arg]); } // log each argument (assuming one or more values have been provided for each) for (arg in argsM) { for each (val in argsM[arg]) { logger.log(arg + "=" + val); } }
24
25
26
Algunos objetos disponibles para todos los Web Scripts: Args. Array asociativo para todos los parmetros de la URI. argsM. Array asociativo para todos los parmetros de la URI, donde cada clave es un nombre de argumento y cada valor es un array que contiene los respectivos valores de argumentos. url. Proporciona acceso a la URI, o partes de ella, que lanz el Web Script. format. Proporciona informacin sobre el formato de la respuesta.
27
28
URLs interesantes
Web Scripts en general: http://wiki.alfresco.com/wiki/Web_Scripts Ejemplos de Web Scripts: http://wiki.alfresco.com/wiki/Web_Scripts_Examples
29
30 1
API de bsqueda
Las bsquedas se definen usando el objeto org.alfresco.service.cmr.search.SearchParameters. Son ejecutadas usando el bean SearchService. SearchService est disponible a travs del bean auxiliar RepositoryServices. Las bsquedas devuelven un objeto de clase org.alfresco.service.cmr.search.ResultSet. El objeto anterior se compone de objetos de clase org.alfresco.service.cmr.search.ResultSetRow. Cada objeto de esta clase se refiere a un nodo en el repositorio.
31 1
Lucene: Ejemplo 1
En FirstFoundationClient, lnea 97 y siguientes.
32 1
Lucene: Ejemplo 2
Uso de Lucene para encontrar todos los nodos de un content type.
SearchParameters sp = new SearchParameters(); sp.addStore(getStoreRef()); sp.setLanguage(SearchService.LANGUAGE_LUCENE); sp.setQuery("TYPE:\"{http://www.alfresco.org/model/content/1.0}content\""); ResultSet results = null; try { results = serviceRegistry.getSearchService().query(sp); for(ResultSetRow row : results) { NodeRef currentNodeRef = row.getNodeRef(); ... } } finally { if(results != null) { results.close(); } }
33 1
34 1
Ventajas de XPath: Es ms sencillo que Lucene, por lo que la curva de aprendizaje es menos pronunciada. Es ms conocido que Lucene, al ser frecuente su uso en las bsquedas de nodos en XML.
35 1
URLs interesantes
http://wiki.alfresco.com/wiki/Search
36 1