[CUBBY-84] @Pathで指定したURIの優先順位を明確にする Created: 2008-01-28 Updated: 2009-07-05 Resolved: 2008-01-30 |
|
| Status: | Closed |
| Project: | Cubby |
| Component/s: | Core |
| Affects Version/s: | 1.0.0-RC1 |
| Fix Version/s: | 1.0.0-RC2 |
| Type: | Task | Priority: | Major |
| Reporter: | baba | Assignee: | baba |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
@Pathで指定したURIの優先順位を明確にします。 {id}のようにパス埋め込まれたパラメータが少ない方からマッチングしていきます。 理由: @Path("/foo/{identifier}") public ActionResult method1() { } @Path("/foo/execute") public ActionResult method2() { } のようなパスが定義された場合、method1の正規表現が"/foo/[a-zA-Z0-9]+"となって"/foo/execute"でアクセスしてもmethod1が実行される可能性があります。(現状では登録された順番にマッチングするので、どちらが呼ばれるか特定できない) なので、パス埋め込まれたパラメータが少ない方からマッチングしていくことで少しでもパスが不安定になることを避けたいと思います。 "/foo/ {identifier}"と"/foo/ {name}"なんかだと、区別がつかないのでこれはムリ。 |
| Comments |
| Comment by baba [ 2008-01-30 ] |
|
対応しました。 リクエストされたパスを以下の順序でCubbyに登録されたアクションと比較していきます。
また、URIの正規表現が同じで@Acceptで指定するHTTPメソッドに同じものがある場合は、アクションの登録時に例外が発生します。 |
| Comment by agata [ 2008-01-29 ] |
|
>それとも同じパスでHTTPメソッドが違うリクエストを許可する? こちらは許可でおねがいします。 |
| Comment by baba [ 2008-01-29 ] |
|
登録されたパスの正規表現がかぶったら例外を出そうと思います。 |