最近我需要为现有的grails应用程序创建REST API。 我想,在一个grails应用程序中,同一个域类的控制器(Normal和Restful)真的可以吗?
如果发出HTTP GET请求,哪个控制器将处理请求?
请讨论您的想法,或者如果可能,请指导我如何。
答案 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显然会有所不同。