finagle过滤器添加默认行为

时间:2015-04-30 00:50:46

标签: scala finagle twitter-finagle

有关过滤器的问题:https://twitter.github.io/scala_school/finagle.html#Filter

对于典型的过滤器堆栈+服务布局,如何为每个过滤器添加默认行为?这基本上是查看请求/响应并执行一些副作用操作(计数,记录等)。我不想为每个过滤器编写代码,而是希望在每个过滤器的末尾触发此默认行为。

1 个答案:

答案 0 :(得分:1)

你想要的是过滤器组合,即你创建一个过滤器,它实际上只是一个传递并导致一些副作用,然后你可以通过组合将其与任何其他过滤器混合。 e.g:

val authFilter: Filter[HttpReq, HttpRep, AuthHttpReq, HttpRep]
val loggingFilter[Req, Rep]: Filter[Req, Rep, Req, Rep]

val authWithLogging: Filter[HttpReq, HttpRep, AuthHttpReq, HttpRep] =
  authFilter andThen loggingFilter