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 を意味する正規表現を作成する必要がありますか? 他のものを変更するたびに、それを変更する必要があります。