CubbyのRESTっぽいURLサポート

最近、RESTな話題が多いですがCubbyもRESTっぽいURLに対応しています。
0.9.2で、GET/POST/PUT/DELETEの使い分けができるようになりました。

JSR311はid:t-wadaさんのエントリーではじめて知りましたが、JSR311の@Pathの仕様とCubbyの@Urlの仕様がちょっとだけ似ていました。CubbyのURLの仕様は、ちょうど1年前にこの日記で案だししてやっと実装までたどりつきました。URLに含まれているパラメータにも通常のパラメータと同じようにバリデーションをかけたくて仕様と実装を悩んだ記憶があります。実装はServletFilterでURLをパースして再構築して、内部的にFORWARDして実現しています。FORWARDする際に内部的なURLにGETパラメータを追加することで、元々のリクエストのURLに含まれるパラメータを通常のクエリーパラメータに変換しています。たぶん、Servletの仕組みの中だとこの方法しか透過的にパラメータの追加はできないんじゃないかと思います。

実際普通のWebアプリでGETとPOSTを使い分ける場面はあまりないとは思いますが、きれいなURLを使いたい場面は結構あるんじゃないかな。