Scala REST API使用FormParams调用Java REST

时间:2015-01-06 09:25:06

标签: java scala rest playframework

我想知道你们是否知道Scala是否有可能调用一个需要@FormParam参数的Java REST客户端函数。

如果Java客户端中的函数是这样的:

@Path("registerEmail")
@POST
public RegisterEmailResult doRegisterEmail(@FormParam("email") final String email, @FormParam("password") String password/* Some other params */) {

如何在Scala中传递一些@FormParam参数?我试过这个:

def registerEmail(registerEmail: RegisterEmail): Future[Boolean] =
post(
  url("/theUrl/registerEmail"),
  new Gson().toJson(registerEmail)
).map {
  case data => true
}.recover {
  case _ => false
}

RegisterEmail模型具有Java函数参数的所有字段。

我错过了什么吗?否则我将不得不再次使用类似@QueryParams的Java函数,这似乎是一种更好的方法。

1 个答案:

答案 0 :(得分:0)

如果您也包含部分导入,那么理解您的代码会更简单。 url(我假设是Play的play.api.libs.ws.WS.url(...))可以像这样使用来传递表单数据:

WS.url("/theUrl/registerEmail")
  .post(Map("email" -> Seq("someone@somewhere.com"), 
            "password" -> Seq("secretish")))

有关详细信息,请参阅https://www.playframework.com/documentation/2.3.x/ScalaWS(特别是搜索“提交表单数据”)