1

我继承了UrlMappings我正在尝试升级到 2.5.0 的 Grails 2.2.4(部分转载如下)。

命名映射api0&工作,但(between & )api2中的两个连续斜杠似乎在 2.5.0 中没有正确匹配(尽管它们在 2.2.4 中匹配)。例如:api1$controller$id

PUT /api/ticket//123.json

尽管我的控制器允许 PUT 用于其更新操作,但仍返回 403。

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 范例。

4

0 回答 0