私はAkka Streamが初めてで、ストリーム内の予期しない動作を処理するためのベストプラクティスを理解しようとしています。Akka Stream内で例外をスローするためのベストプラクティスは何ですか?Scala?
私はAccount Kit APIを使用して、短期間のコードを長いライブアクセストークンに交換するストリームを構築しています。ここで
は、ストリームを構築するための関連するコードです:
override def ExchangeCode: Flow[String, AccessTokenInfo, NotUsed] =
Flow[String].mapAsync(1) { code =>
ws.url(buildUrl("access_token"))
.withQueryString(
"grant_type" -> "authorization_code",
"code" -> code,
"access_token" -> appToken
)
.withRequestTimeout(timeout)
.get
.map { response =>
if (response.status != 200) throw new RuntimeException("Unexpected response")
else response.json
}
.map { json =>
AccessTokenInfo("123456", 123, "123456")
}
}
ステータスコードが200でない場合は例外をスローする場合、私は疑問に思う、それに対処するための正しい方法であるが、これは終了の唯一の方法です私はそれを知っているので、先にストリーム。 (現在の戻り値はダミーのものです)