1

我正在尝试将 JSON api 映射到我的控制器,例如:

/api/user/1/location GET --> Controller.getLocation()

/api/user/1/location POST --> Controller.setLocation()

我尝试了以下 url 映射规则,但没有任何运气:

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

任何人都尝试过这样的事情

4

1 回答 1

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只允许这种配置是静态的。也许有人可以深入研究源代码以便稍后找到。

于 2012-12-26T17:01:38.880 回答