2

RESTeasy を使用して RESTful Web サービスを作成しています。これは JAX-RS の実装です。単一の @Path アノテーションでクラスまたはメソッドにアノテーションを付けます。正規表現は、パス パラメータを取得するために使用されます。例えば

@Path("/foo{varname:.*}/bar")

「/foo」で始まり、「/bar」で終わり、その間にあるすべてのパターンに一致します。間にあるものはすべて、varname という名前のパラメーターに割り当てられます。

一部のフレームワーク (Django など) には、順番に試行される正規表現とメソッドのリストがあります。たとえば、/john/q/smith、/john/{.*}/smith、/john/{.*}/{.*} などです。「/john/henry/smith」は 2 番目と 3 番目に一致しますが、最初に見つかった一致であるため、2 番目がディスパッチされます。

これは JAX-RS で可能ですか、それともクラスとメソッドに固有の順序はありませんか? /john/{.*}/{.*} の場合、/john/anything/anythingbutsmith を意味する正規表現を作成する必要がありますか? 他のものを変更するたびに、それを変更する必要があります。

4

2 に答える 2

2

明確に定義されたアルゴリズムがあり、JAX-RS仕様のセクション3.7.1で説明されています。率直に言って、私は説明がかなり不透明だと思います-それでそれを読んで、私はあなたの質問に答えることができません。

ただし、選択アルゴリズムのCXFの概要を見つけたところです。これは、優先順位規則によって実際に必要なことを実行できることを示しているようです。

于 2009-12-02T14:07:33.700 に答える