play2でフィルター処理っぽく書きたい
ソースも全然できてませんが、play2でActionを実行する前に色々とフィルター処理がかけたらいいなーと思い、色々と試行錯誤してます。
イメージ的には、こんな感じ。(フィルター処理は適当)
def index = Filter { req => req.getQueryString("key1") match { case Some(_) => continue // continueで次のフィルターに処理が移る。 case None => BadRequest // continue以外のResultの場合はそれが返る。 } } >> Filter { req => req.getQueryString("key2") match { case Some(value) => continueWith(value) // continueWithで渡した値は次のFilter/Actionに渡る(出来ればタプルで) case None => BadRequest } } >> Action { (value2) => request => Ok("key2 is %s" format value2) }
実現できないかなぁ・・・。