2012-12-26 52 views
1

我想一个JSON API映射到我的控制器,如:参数动作名称

/API /用户/ 1 /位置GET - > Controller.getLocation()

/API /用户/ 1 /位置POST - > Controller.setLocation()

我曾尝试以下URL映射规则没有任何的运气:

"/api/$controller/$id/$property" { 
     action = {[GET: "get${params.property.capitalize()}", POST: "set${params.property.capitalize()}"]} 
    } 

任何试图像这样

回答

2

我试图和与两个成功:

"/api/$controller/$id/$property"{ 
    action = {"get"+params.property.capitalize()}   //put all joint into the {} bracelet 
} 

"/api/$controller/$id/$property"{ 
    action = [GET: "getLocation", POST:"setLocation"]   //remove the {} bracelet 
} 

但未能动态参数分配到[GET: '',POST: '']图,例如:

"/api/$controller/$id/$property"{ 
    action = {["POST": "set"+params.property.capitalize(), "GET": "get"+params.property.capitalize()]} 
} 

"/api/$controller/$id/$property"{ 
    action = [POST: {"set"+params.property.capitalize()}, GET: {"get"+params.property.capitalize()}] 
} 

都产生了404错误。

所以我想Grails只允许这种配置是静态的。也许有人可以深入了解源代码以便稍后查找。