假设我们有一个基于Akka Streams的API(在下面的例子中为Api
),它允许我们上传&下载数据,但仅限于提供有效令牌。还有一个函数可以在令牌过期时刷新令牌。但是,只有在过期时才刷新令牌,在每次调用之前刷新令牌都不行。
我想将此Api
包装到更高级别的API(下例中的WithRefreshes
)中,该API将自动处理令牌刷新,同时向客户端提供大致相同的API(仅没有在调用中使用token
参数)。
这意味着在下面的代码中提供WithRefreshesImpl
的实现,以便TestSpec
通过。
约束是这应该是惯用的Scala和Akka Streams代码 - 所以没有阻塞Await.result
- s,理想情况下我们希望将它留给Api
实现来使用{{1在String
的情况下为s,或者在Sink
的情况下客户端检索它们。
Source