0
我有我的控制器的一個非常複雜的流程,這是怎麼一回事呢用詞:讓控制器返回類型錯誤試圖返回未來,當[結果]
- get the request
- translate it to my model
case it succeed:
insert some record to my db
case it succeed:
perform some api call
case it succeed:
match its returned value
case failed:
recover with proper result
case failed:
recover with proper result
case failed:
recover with proper result
,但在我的代碼我得到一些冥冥中我不是返回結果的正確前景錯誤...
錯誤:
expression of type unit doesnt conform to expected type Future[Result]
這是代碼:
def myApiMethod ...
val requestAsModel = request.body.extractOpt[MyModel]
requestAsModel match {
case Some(req) =>
// returning Future
dbService.insert.onComplete {
case Success(x) =>
myApiService.doSomething(req).map {
case good: GoodRes => Ok(Extraction.decompose(good))
case bad: BadRes => BadRequest(Extraction.decompose(bad))
} recover {
case ex =>
InternalServerError
}
case Failure(ex) => Future {InternalServerError}
}
case None =>
Future.successful(BadRequest("not a good body content"))
}
}
所以你看到這裏的問題?
它看起來像是一個很好的做法,控制器是這樣寫的?
感謝