API return 可写
API return writeable
我正在尝试转换一些必须使用并发的端点。我有以下控制器方法:
原方法
def getHistory(id:String) = Action {
val response = historyService.getPersonHistory(id)
Ok(write(response)) as "application/json"
}
新方法
def getHistory(id:String) = Action.async {
val response = scala.concurrent.Future {
historyService.getPersonHistory(id)
}
response.map(i => Ok(i))
}
所以,当我们用一个简单的示例过程(不调用另一个方法,而只是计算一个 Int)尝试这个时,它似乎有效。在上面的新版本中,我不断收到错误消息:
"No implicits found for parameter writable: Writeable[historyResponse]
无法将 models.HistoryResponse
的实例写入 HTTP 响应。尝试定义一个 Writeable[models.HistoryResponse]
"
我是 Scala 的新手,很难找到关于制作可写对象的信息。我需要什么才能 return 结果和以前一样?
谢谢
您需要在 HistoryResponse
的伴生对象中定义一个 implicit val tjs: Writes[HistoryResponse]
或更好的 implicit val format: Format[HistoryResponse] = Json.format[HistoryResponse]
,以便 play 可以自动将您的数据转换为 json。顺便说一下,地图函数中的 i
不是一个好名字,像“history”这样的名字会比“i”更好。
我正在尝试转换一些必须使用并发的端点。我有以下控制器方法:
原方法
def getHistory(id:String) = Action {
val response = historyService.getPersonHistory(id)
Ok(write(response)) as "application/json"
}
新方法
def getHistory(id:String) = Action.async {
val response = scala.concurrent.Future {
historyService.getPersonHistory(id)
}
response.map(i => Ok(i))
}
所以,当我们用一个简单的示例过程(不调用另一个方法,而只是计算一个 Int)尝试这个时,它似乎有效。在上面的新版本中,我不断收到错误消息:
"No implicits found for parameter writable: Writeable[historyResponse]
无法将 models.HistoryResponse
的实例写入 HTTP 响应。尝试定义一个 Writeable[models.HistoryResponse]
"
我是 Scala 的新手,很难找到关于制作可写对象的信息。我需要什么才能 return 结果和以前一样?
谢谢
您需要在 HistoryResponse
的伴生对象中定义一个 implicit val tjs: Writes[HistoryResponse]
或更好的 implicit val format: Format[HistoryResponse] = Json.format[HistoryResponse]
,以便 play 可以自动将您的数据转换为 json。顺便说一下,地图函数中的 i
不是一个好名字,像“history”这样的名字会比“i”更好。