Introducción al Desarrollo de Aplicaciones con Groovy y Grails (Parte 6)
June 3, 2009 – 11:51 amTags: grails, Groovy, Java
Generación de RSS con Grails
En esta sección del tutorial utilizaremos un plugin para la generación de RSS utilizando grails. (Puede encontrar una lista de los plugins existentes en la siguiente ubicación: http://grails.org/plugin/home
El plugin que utilizaremos para la generación de rss se llama Feeds. Para instalarlo ejecutamos el siguiente comando (tenga en cuenta estar ubicado en la carpeta de su proyecto)
> F:\dev\issuetracker>grails install-plugin feeds
Cuando aparezca en la consola el mensaje “Plugin feeds-1.4 installed” podemos seguir al siguiente paso del tutorial.
Vamos a crear un feed rss con los issues creados en el sistema. Primero procedemos a ubicar el archivo /issuetracker/grails-app/controllers/IssueController.groovy y adicionamos el siguiente método:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def feed = { render(feedType:"rss", feedVersion:"2.0") { title = "Mi feed de prueba " link = "http://localhost:8080/issuetracker/issue/feed" description = "Issues Grails news feed" Issue.list().each() { issue -> entry(issue.submitter) { link = "http://your.test.server/article/${issue.id}" issue.description // return the content } } } } |
Si digitamos la dirección http://localhost:8080/issuetracker/issue/feed podremos ver generado el siguiente feed:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version="1.0" encoding="UTF-8"?> <rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0"> <channel> <title>Mi feed de prueba</title> <link>http://localhost:8080/issuetracker/issue/feed</link> <description>Issues Grails news feed</description> <item> <title>User 1</title> <link>http://your.test.server/article/5</link> <content:encoded>My report from error</content:encoded> <guid>http://your.test.server/article/5</guid> </item> <item> <title>User 2</title> <link>http://your.test.server/article/6</link> <content:encoded>This component does not work in firefox</content:encoded> <guid>http://your.test.server/article/6</guid> </item> </channel> </rss> |
Si queremos incluir el enlace para la visualización del RSS en nuestra página de listado de Issues podemos adicionar el siguiente código al archivo /issuetracker/grails-app/views/issue/list.gsp
1 2 3 | <div >
<a href="${createLinkTo(dir:'issue/feed', file:'')}">View RSS</a>
</div> |