首页 > 解决方案 > Scala Finch 后组合器:如何获取原始请求?

问题描述

每当我收到使用 Finch 的特定帖子“事件”时,我都需要记录原始请求post()

我有类似的东西:

val myEvent: Endpoint[String] = post("somepath" :: ipRangeEndpoint :: path[Long] :: jsonBody[Event]) {
    (matchId: Long, event: Event) =>
      (event match { 
           case _: Event.ToBeLogged => 
              logger.debug(<REQUESTHERE>)
              Ok("logged")
     })
    }

所以假设,对于一部分案例,我需要记录传入的com.twitter.finagle.http.Request. 我怎样才能做到这一点?

标签: scalafinch

解决方案


https://finagle.github.io/finch/user-guide.html#root-request

“Finch 可能会遗漏一些开箱即用的便利端点,尤其是它与 Finagle 分开发展。为了克服这一点并提供扩展点,有一个特殊的端点实例,称为 root,它返回原始 Finagle 请求。 "


推荐阅读