【问题标题】:Applying a filter after a service in Finagle在 Finagle 中的服务后应用过滤器
【发布时间】:2016-03-06 16:33:35
【问题描述】:

我可以通过添加过滤器使用filter1 andThen httpService 的 HTTP 服务对传入的 HTTP 请求进行各种预处理 即

val addRequestHeaderFilter = new SimpleFilter[Request, Response] {
    def apply(req: Request, service: Service[Request, Response]) = {
      req.headerMap.add("header1","header_value")
      service(req)
    }      
 }
 Http.serve(":5000", addRequestHeaderFilter andThen theActualHTTPService) 

问题是,我想在响应中添加标头。是否有售后服务过滤器? 你真的不能service andThen service

【问题讨论】:

    标签: scala finagle


    【解决方案1】:

    我的错:我在推理过滤器,就像它们是流一样。所以这行得通:

    val addRequestHeaderFilter = new SimpleFilter[Request, Response] {
        def apply(req: Request, service: Service[Request, Response]) = {
          val respFuture = service(req)
          respFuture.map(_.headerMap.add("header1","header_value"))
          respFuture
        }      
     }
     Http.serve(":5000", addRequestHeaderFilter andThen theActualHTTPService) 
    

    在 fitler 中,我正在应用服务并在返回它之前操纵它的响应。并且这表现得像一个服务前过滤器,即不需要反转andThen 功能组合。

    Finagle 真的很酷

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 2018-01-01
      • 2015-07-09
      • 2021-05-14
      相关资源
      最近更新 更多