1

UrlMappings2.5.0 にアップグレードしようとしている Grails 2.2.4 (以下に部分的に再現) を継承しました。

api0&という名前のマッピングは機能しますが、( &の間の) api22 つの連続するスラッシュは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