UrlMappings
2.5.0 にアップグレードしようとしている Grails 2.2.4 (以下に部分的に再現) を継承しました。
api0
&という名前のマッピングは機能しますが、( &の間の) api2
2 つの連続するスラッシュは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 パラダイムに従っていません。