我正在尝试构建一个简单的RESTful服务,该服务在数据库上执行CRUD操作并返回JSON。我有一个服务,坚持这样的API
GET mydomain.com/predictions/some%20string
我使用DAO,其中包含我创建的以下方法来检索关联的预测:
def getPrediction(rawText: String): Prediction = {
val predictionAction = predictions.filter{_.rawText === rawText}.result
val header = predictionAction.head
val f = db.run(header)
f.onComplete{case pred => pred}
throw new Exception("Oops")
}
然而,这可能不对,所以我开始阅读Option
。我相应地改变了我的代码:
def getPrediction(rawText: String): Option[Prediction] = {
val predictionAction = predictions.filter{_.rawText === rawText}.result
val header = predictionAction.headOption
val f = db.run(header)
f.onSuccess{case pred => pred}
None
}
这仍然感觉不太对劲。调用这些过滤器,返回结果以及处理任何不确定性的最佳方法是什么?