plicação Grails @RESTful: SECANDO o UrlMapping
Digamos que temos um aplicativo da web do Grails que expõe vários recurso
Ta urlsComerciaO aplicativo possui uma interface web clássica com a qual os usuários interagem e alguma administração. Queremos expor os recursos do aplicativo para os clientes por meio de uma API RESTful e não queremos que essa parte do aplicativo atrapalhe os controladores e o código que já temos. Então, criamos o seguinte:
Se a interface da web oferecerhost/app_path/url/[list|show|create]
queremos que a API REST esteja em/host/app_path/rest/url
.
Então, acabamos com o seguinte arquivo 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')
}
}
O problema é que isso não é exatamente a coisa mais SECA aqui. Fica pior à medida que adicionamos mais recursos, como tags. Eles traduziriam para mais três blocos de código muito semelhante ...
As funções não cruas serão coisas como pesquisar com critérios específicos e coisas assim ...
Tentamos gerar os fechamentos de mapeamento com um loop, mas sem sucesso. Estamos completamente no caminho errado aqui?