我想構建一個簡單的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
}
這仍然不太合適。調用這些過濾器,返回結果並處理任何不確定性的最佳方法是什麼?
哪個版本的浮油? – marcospereira
@marcospereira'3.1.1'。我想我通過添加'return Some(red)'和'return None'來計算出來。我讀了一些關於'Option'的文章,並使用'.isEmpty'來決定做什麼。儘管文檔看起來很模糊,但我仍然對使用'Slick'的最佳方式感到好奇。例如,還有'DBIO'序列。不確定哪個最適合使用。 –