在grails中urlMapping有着非常强大的功能,他可以实现简单的Restful风格,只需要简单配置一下就可以,如:
"/api/get(controller:"User",action:"edit")"
访问的时候访问:http://ip:端口/api/get他就会调用user控制器下面的edit方法,外界根本不知道你的控制器在哪儿,对后台接口起到保护作用。
还有一种,如你的后端为app提供接口,并且你提供的接口是固定的,比如:http://www.app.com/api/upgrade为后端接口,但是当你升级之后又添加了一个新的接口,此时如果你在原来的接口上面修改,可能后导致旧版本的app无法正常使用,所以这里我们可以在urlmapping中做文章。
原理:将action作为参数传递
UrlMapping配置:
package test1
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
"404"(view:'/notFound')
//动态传递方法名
"/app/upgrade?/$action?"(controller: "api")
}
}
比如接口为:
package com.test
class ApiController {
def v1() {
println params
render "version.01"
}
def v2() {
render "version.02"
}
}
调用方式:
将action作为参数传递:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!