Play中的RESTful方法

时间:2013-09-05 20:15:08

标签: scala playframework-2.1

我一直在开发接受Option[JsValue]的控制器操作,因为Play的request对象可以解析为JSON:

def submit = Action { implicit request => 
  performDbQuery(request.body.asJson)
  ...
}

def performDbQuery(json: Option[JsValue]) = {
  ...
}

路由

PUT /submit controllers.MainController.submit

JSON是否是在Play中发出REST调用的首选方式?

1 个答案:

答案 0 :(得分:2)

我不确定Stack Overflow是否适合询问“首选方式”,但它肯定会让您很容易使用JSON,如您所见。

您实际上可以使用Body Parser来更加严密地收紧代码,{{3}}会自动拒绝/submit端点Content-Type application/json def submit = Action(parse.json) { implicit request => performDbQuery(request.body) ... } def performDbQuery(json: JsValue) = { ... } 的请求,为您返回400代码,并允许在您的方法中更强大的输入:

Option

注意{{1}}是如何消失的,因为我们现在可以确定这是一个很好的JSON。