我正在尝试将JSON api映射到我的控制器,如:
/ api / user / 1 / location GET - > Controller.getLocation()
/ api / user / 1 / location POST - > Controller.setLocation()
我尝试了以下网址映射规则而没有任何运气:
"/api/$controller/$id/$property" {
action = {[GET: "get${params.property.capitalize()}", POST: "set${params.property.capitalize()}"]}
}
任何人都尝试过这样的事情
答案 0 :(得分: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只允许这种配置是静态的。也许有人可以深入研究源代码以便稍后查找。