我正在尝试使用Scala和Play框架构建API端点测试。
代码导致错误,因为我无法验证response.json是否为空。这个特定的端点不会返回任何内容,我需要检查这种情况。
protected def apiResponse[T](response: Response)(implicit reads: Reads[T]): JsResult[T] = {
response.status match {
case Success(code) => Json.fromJson[T](response.json)
case ClientError(code) => throw ApiError(response.body, response.status)
case _ => throw ApiError(response.statusText, response.status)
}
}
我正在尝试做这类事情。
protected def apiResponse[T](response: Response)(implicit reads: Reads[T]): JsResult[T] = {
response.status match {
case Success(code) => if(Json.fromJson[T](response.json).equals(JsNull)) Json.fromJson[T](JsString(response.statusText.toString+"1")) else Json.fromJson[T](response.json)
case ClientError(code) => throw ApiError(response.body, response.status)
case _ => throw ApiError(response.statusText, response.status)
}
}
任何帮助将不胜感激
答案 0 :(得分:1)
我想出了如何完成这项工作。我意识到端点返回一个空的response.body。
if(response.body.toString ==“”)为我做了诀窍,而不是考虑整个response.json的值。
如果有人有更好的方法,请告诉我。