Grails应用程序可以为相同的域类使用RestController和普通控制器(对于GSP)

时间:2015-03-05 10:54:13

标签: rest grails

最近我需要为现有的grails应用程序创建REST API。 我想,在一个grails应用程序中,同一个域类的控制器(Normal和Restful)真的可以吗?

如果发出HTTP GET请求,哪个控制器将处理请求?

请讨论您的想法,或者如果可能,请指导我如何。

2 个答案:

答案 0 :(得分:1)

我们可以定义一个新的Controller来处理REST API调用。例如在我的应用程序中,我有User as Domain Class,并有UserController将数据返回到GSP页面。我想在同一个应用程序中添加REST API支持(不幸的是),我不想处理它在UserController中已经存在的混乱。所以我添加了新的Controller UserRestController,它将专门处理REST API调用,并在UrlMappings.groovy中进行映射,现在可以正常工作。感谢@codehx帮助我。

"/api/users"(controller: "userRest", parseRequest: true) {
            action = [GET: "list", POST: "save" }

"/api/users/$id"(controller: "usersRest", parseRequest: true) {
        action = [GET: "show", PUT: "update", DELETE: "delete"] }

答案 1 :(得分:0)

如果发出HTTP GET请求,哪个控制器将处理请求?

就grails应用程序中不可能有两个具有相同名称的控制器而言,这不会令人困惑。

只需为Normal控制器和RESTFUL控制器使用两个不同的名称,因此访问这两个URL的URL显然会有所不同。