plicación de griales de INMEDIATO: SECAR UrlMapping

Digamos que tenemos una aplicación web de Grails que expone varios recursos.

tags urls usuarios

La aplicación tiene una interfaz web clásica con la que los usuarios interactúan y alguna administración. Queremos exponer los recursos de la aplicación a los clientes a través de una API RESTful y no queremos que esa parte de la aplicación desordene los controladores y el código que ya tenemos. Entonces se nos ocurrió lo siguiente:

Si la interfaz web ofrecehost/app_path/url/[list|show|create] queremos que la API REST esté en/host/app_path/rest/url.

Así que terminamos con el siguiente archivo UrlMappings:

class UrlMappings {
static mappings = {
    "/$controller/$action?/$id?"{

    }

    /* adding new urls and listing them */
    "/rest/url"{
        controller = "urlRest"
        action = [POST: "save", PUT: "save", GET: "list", DELETE:"error"]
    }

    /* accessing a single url */
    "/rest/url/$id"{
        controller = "urlRest"
        action = [POST: "update", PUT: "update", GET: "show", DELETE: "delete"]
    }

    /* non-crud stuff on urls */
    "/rest/url/$action?/$id?"{
        controller = "urlRest"
    }

    "/"(view:"/index")
    "500"(view:'/error')
}
}

El problema es que esto no es exactamente lo más SECO aquí. Empeora a medida que agregamos más recursos, como etiquetas. Se traducirían a otros tres bloques de código muy similares ...

Las funciones que no son crud serán cosas como buscar con criterios específicos y tales ...

Intentamos generar los cierres de mapeo con un bucle, pero sin éxito. ¿Estamos completamente en el camino equivocado aquí?

Respuestas a la pregunta(2)

Su respuesta a la pregunta