Scenic3を可変長のURL引数に対応してみた

slim3のMLでこんなURLに対応できないの?という話があがっていました

/foo/bar/a/very/long/long/long/long/long/long/long/path/

つまり、パスでIdか何かが区切られていて、かつ可変長なパターンです。
正直な所あまりないのかな?と思いつつも、ファイルのフォルダ管理とかを行うならばありなのかな?と思いつつ、Scenic3で出来ないか考えてみました。

結果、こんな感じ。

@Page("/")
public class FrontPage extends ScenicPage {
    @ActionPath("longPath/{ids}*")
    public Navigation longPath(@Var("ids") String... ids) {
       // ...
    }
}

{ids}*の*を指定してアクションメソッドの引数を可変長パラメータにするだけ。ただし、現状ではパスの最後にないといけないですが、概ねは要件を満たせるんじゃないのかな?と思っています。対応している型は、String,int,long,Integer,Long、まあ十分じゃないかな。
デモサイトはこちら

ちなみに、Slim3の1.0.6がリリースされたら、この機能を含めた0.3.0をリリースする予定です。