我继承了Grails 2.2.4 UrlMappings
(部分转载如下),我试图升级到2.5.0。
命名映射api0
& api2
工作,但api1
中的两个连续斜线($controller
和$id
之间)似乎在2.5.0中没有正确匹配(尽管它们匹配在2.2.4)。 e.g:
PUT /api/ticket//123.json
返回403,尽管我的控制器允许PUT进行更新操作。
name api0: "/api/$controller/$id?(.$format)?" {
action = [GET: 'show', PUT: 'update', POST: 'save', DELETE: 'delete']
constraints {
id(matches: /\d+/)
}
}
name api1: "/api/$controller//$id?(.$format)?" {
action = [GET: 'show', PUT: 'update', POST: 'save', DELETE: 'delete']
constraints {
id(matches: /\d+/)
}
}
name api2: "/api/$controller/$action/$id?(.$format)?" {
constraints {
id(matches: /\d+/)
}
}
我无法更改传入的URL和/或HTTP方法(我没有创建它们),所以请不要告诉我更改客户端以用单斜杠替换URL中的双斜杠,或者URL和/或HTTP方法不遵循REST范例。