通常、OpenRasta には次のような構成があります。
ResourceSpace.Has.ResourcesOfType<Customers>()
.AtUri("/customers/region/{region}")
... // and so on
...{region}
パスの一部は、処理メソッドの文字列パラメーターに自動的にマップされます。したがって、ユーザーがヒットした場合:
http://server/customers/region/emea
次に、ハンドラー メソッドに文字列「emea」が渡されます。
これを行うだけでなく、次のようなハンドラーを登録したいと思います。
ResourceSpace.Has.ResourcesOfType<Customers>()
.AtUri("/someotherthing/*")
... // and so on
この架空の構文では、アスタリスクは「スラッシュを含む残りのパスを処理メソッドに渡す単一の文字列パラメーターにする」ことを意味します。したがって、ユーザーがヒットした場合:
http://server/someotherthing/how/about/this?that=other
次に、ハンドラー メソッドが文字列パラメーターを受け取ります。
how/about/this?that=other
OpenRastaでそのようなことは可能ですか?
Sinatra (Ruby) では、まさにこれを行うために正規表現を使用します。
更新:これまでの私の推測では、何らかの方法でスラッシュを偽装するためにパスを変更するカスタム パイプラインです...