Introducción

Grails es un framework de desarrollo web de alto rendimiento que se basa en el lenguaje de programación Groovy. Está diseñado para simplificar el desarrollo de aplicaciones web mediante la convención sobre configuración, la integración con Spring y Hibernate, y una serie de características que permiten a los desarrolladores ser más productivos.

Objetivos del Tema

  • Comprender qué es Grails y sus beneficios.
  • Configurar un proyecto Grails.
  • Conocer la estructura de un proyecto Grails.
  • Crear una aplicación web básica con Grails.
  • Realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) con Grails.

¿Qué es Grails?

Grails es un framework de desarrollo web que sigue el patrón de diseño MVC (Modelo-Vista-Controlador). Está construido sobre la plataforma Java y utiliza Groovy como lenguaje de programación. Grails proporciona una serie de características que facilitan el desarrollo rápido de aplicaciones web:

  • Convención sobre configuración: Grails sigue un conjunto de convenciones que permiten a los desarrolladores centrarse en la lógica de la aplicación en lugar de la configuración.
  • Integración con Spring y Hibernate: Grails se integra perfectamente con Spring para la gestión de dependencias y con Hibernate para la persistencia de datos.
  • Productividad: Grails incluye herramientas y características que aumentan la productividad del desarrollador, como el scaffolding, que permite generar rápidamente código CRUD.

Configuración del Entorno

Requisitos Previos

  • Java Development Kit (JDK) 8 o superior.
  • Groovy 2.5 o superior.
  • Grails 4.0 o superior.

Instalación de Grails

  1. Descargar e instalar Grails:

    • Visita la página oficial de Grails: Grails Downloads.
    • Descarga la versión más reciente de Grails.
    • Descomprime el archivo descargado y agrega el directorio bin de Grails a tu variable de entorno PATH.
  2. Verificar la instalación:

    grails -version
    

    Deberías ver la versión de Grails instalada.

Creación de un Proyecto Grails

Paso 1: Crear un Nuevo Proyecto

Para crear un nuevo proyecto Grails, utiliza el siguiente comando:

grails create-app nombreDelProyecto

Este comando generará la estructura básica del proyecto.

Paso 2: Estructura del Proyecto

Una vez creado el proyecto, la estructura del directorio será similar a la siguiente:

nombreDelProyecto/
├── grails-app/
│   ├── assets/
│   ├── conf/
│   ├── controllers/
│   ├── domain/
│   ├── i18n/
│   ├── init/
│   ├── services/
│   ├── taglib/
│   ├── utils/
│   └── views/
├── src/
│   ├── integration-test/
│   ├── main/
│   └── test/
├── build.gradle
└── settings.gradle

Paso 3: Ejecutar la Aplicación

Para ejecutar la aplicación, navega al directorio del proyecto y utiliza el siguiente comando:

grails run-app

La aplicación estará disponible en http://localhost:8080.

Creación de una Aplicación Web Básica

Paso 1: Crear un Dominio

Un dominio en Grails representa una tabla en la base de datos. Para crear un dominio, utiliza el siguiente comando:

grails create-domain-class nombreDelDominio

Por ejemplo:

grails create-domain-class Book

Paso 2: Definir el Dominio

Edita el archivo grails-app/domain/nombreDelProyecto/Book.groovy para definir los atributos del dominio:

package nombreDelProyecto

class Book {
    String title
    String author
    Date releaseDate

    static constraints = {
        title blank: false
        author blank: false
        releaseDate nullable: true
    }
}

Paso 3: Crear un Controlador

Un controlador maneja las solicitudes HTTP y coordina la lógica de la aplicación. Para crear un controlador, utiliza el siguiente comando:

grails create-controller nombreDelDominio

Por ejemplo:

grails create-controller Book

Paso 4: Definir Acciones en el Controlador

Edita el archivo grails-app/controllers/nombreDelProyecto/BookController.groovy para definir las acciones CRUD:

package nombreDelProyecto

class BookController {

    def index() {
        respond Book.list()
    }

    def show(Long id) {
        respond Book.get(id)
    }

    def create() {
        respond new Book(params)
    }

    def save(Book book) {
        if (book.save(flush: true)) {
            redirect action: "show", id: book.id
        } else {
            render view: "create", model: [book: book]
        }
    }

    def edit(Long id) {
        respond Book.get(id)
    }

    def update(Book book) {
        if (book.save(flush: true)) {
            redirect action: "show", id: book.id
        } else {
            render view: "edit", model: [book: book]
        }
    }

    def delete(Long id) {
        Book.get(id)?.delete(flush: true)
        redirect action: "index"
    }
}

Paso 5: Crear Vistas

Las vistas en Grails se encuentran en grails-app/views/nombreDelDominio/. Crea las vistas index.gsp, show.gsp, create.gsp, y edit.gsp para manejar las diferentes acciones del controlador.

Ejercicio Práctico

Ejercicio 1: Crear una Aplicación de Biblioteca

  1. Crear un dominio Author con los atributos name y birthdate.
  2. Crear un controlador AuthorController con acciones CRUD.
  3. Crear vistas para las acciones del controlador Author.

Solución

  1. Crear el dominio Author:

    grails create-domain-class Author
    
  2. Definir el dominio Author:

    package nombreDelProyecto
    
    class Author {
        String name
        Date birthdate
    
        static constraints = {
            name blank: false
            birthdate nullable: true
        }
    }
    
  3. Crear el controlador AuthorController:

    grails create-controller Author
    
  4. Definir acciones en AuthorController:

    package nombreDelProyecto
    
    class AuthorController {
    
        def index() {
            respond Author.list()
        }
    
        def show(Long id) {
            respond Author.get(id)
        }
    
        def create() {
            respond new Author(params)
        }
    
        def save(Author author) {
            if (author.save(flush: true)) {
                redirect action: "show", id: author.id
            } else {
                render view: "create", model: [author: author]
            }
        }
    
        def edit(Long id) {
            respond Author.get(id)
        }
    
        def update(Author author) {
            if (author.save(flush: true)) {
                redirect action: "show", id: author.id
            } else {
                render view: "edit", model: [author: author]
            }
        }
    
        def delete(Long id) {
            Author.get(id)?.delete(flush: true)
            redirect action: "index"
        }
    }
    
  5. Crear vistas en grails-app/views/author/ para las acciones del controlador.

Conclusión

En esta sección, hemos aprendido sobre el framework Grails, cómo configurar un proyecto Grails, y cómo crear una aplicación web básica con operaciones CRUD. Grails es una herramienta poderosa que puede aumentar significativamente la productividad del desarrollador al proporcionar un conjunto de características y convenciones que simplifican el desarrollo de aplicaciones web.

En el siguiente módulo, exploraremos otras bibliotecas y herramientas del ecosistema Groovy que pueden complementar y mejorar nuestras aplicaciones Grails.

© Copyright 2024. Todos los derechos reservados