このようなものが動作するはずです:
GET /foo controllers.MyController.foo(name: String ?= "", age: Int ?= 0)
パラメータは省略できるため、デフォルト値を指定する必要があります (コントローラ関数でそれらの値を処理します)。
暗黙的なリクエストを渡して getQueryString パラメータにアクセスすると、コントローラの他のオプション パラメータにアクセスできるはずです (Play 2.1.0 で追加されたと思います)。
def foo(name: String, age: Integer) = Action { implicit request =>
val authCode: Option[String] = request.getQueryString("authCode")
...
}
これを行うためのより良い方法は、コントローラーのパラメーターからオプションの名前と年齢を取り出し、queryString からすべてを抽出することです。
def foo = Action { implicit request =>
val nameOpt: Option[String] = request.getQueryString("name")
val ageOpt: Option[String] = request.getQueryString("age")
...
}
更新: 2.1.1 の現在のドキュメントはこれについて少しずれています (issue #776 で修正されたため) が、これは別の (そして最良の、IMHO) オプションです。
GET /foo controllers.MyController.foo(name: Option[String], age: Option[Int])
と...
def foo(name: Option[String], age: Option[Int]) = Action { implicit request =>
Ok(s"Name is: $name, age is $age")
}