用 Grails 实现 RESTful Web 服务
首先,需要确保您的控制器已经开始响应那四个 HTTP 方法了。回想一下,如果用户不指定一个像 list 或 show 这样的操作的话,index 闭包就是通往控制器的入口点。index 默认重定向到 list 操作:def index = { redirect(action:list,params:params) }。用清单 8 中的代码替换这个代码:
清单 8. 启动 HTTP 方法
def index = {
switch(request.method){
case "POST":
render "Create\n"
break
case "GET":
render "Retrieve\n"
break
case "PUT":
render "Update\n"
break
case "DELETE":
render "Delete\n"
break
}
}
switch(request.method){
case "POST":
render "Create\n"
break
case "GET":
render "Retrieve\n"
break
case "PUT":
render "Update\n"
break
case "DELETE":
render "Delete\n"
break
}
}
如清单 9 所示,使用 cURL 来验证 switch 语句运行正常:
清单 9. 全部四个 HTTP 方法都使用 cURL
$ curl --request POST http://localhost:9090/trip/airport
Create
$ curl --request GET http://localhost:9090/trip/airport
Retrieve
$ curl --request PUT http://localhost:9090/trip/airport
Update
$ curl --request DELETE http://localhost:9090/trip/airport
Delete
Create
$ curl --request GET http://localhost:9090/trip/airport
Retrieve
$ curl --request PUT http://localhost:9090/trip/airport
Update
$ curl --request DELETE http://localhost:9090/trip/airport
Delete