3
私はScalaには新しく、すべての結果を得るまで、十分に異なるオフセットのAPI呼び出しを行うことです。すべての結果を取得するためのスカラ再帰的なAPI呼び出し
ここに私が持っているものの簡略化されたバージョンがあり、それを行うためのもっと慣用的なScalaの方法があるのだろうかと思っていました。 (コードサンプルは100%正確ではないかもしれない、それはちょうど私が例として立て何か)otherProducts
パラメータを渡す
def getProducts(
limit: Int = 50,
offset: Int = 0,
otherProducts: Seq[Product] = Seq()): Future[Seq[Product]] = {
val eventualResponse: Future[ApiResponse] = apiService.getProducts(limit, offset)
val results: Future[Seq[Product]] = eventualResponse.flatMap { response =>
if (response.isComplete) {
logger.info("Got every product!")
Future.successful(response.products ++ otherProducts)
} else {
logger.info("Need to fetch more data...")
val newOffset = offset + limit
getProducts(limit, newOffset, otherProducts ++ response.products)
}
}
results
}
はちょうどいい感じていない:任意の提案を事前にP
感謝を:)