akka-http:带流程的完整请求

2023-11-25

假设我设置了一个任意复杂的Flow[HttpRequest, HttpResponse, Unit].

我已经可以使用所述流程来处理传入请求

Http().bindAndHandle(flow, "0.0.0.0", 8080)

现在我想添加日志记录,利用一些现有的指令,例如logRequestResult("my-service"){...}有没有办法将此指令与我的流程结合起来?我想我正在寻找另一个指令,类似于

def completeWithFlow(flow: Flow): Route

这有可能吗?

注意:logRequestResult 是一个例子,我的问题适用于任何可能有用的指令。


事实证明,一种(也许是唯一)方法是连接并具体化一个新流程,并将提取的请求提供给它。下面的例子

  val myFlow: Flow[HttpRequest, HttpResponse, NotUsed] = ???

  val route =
    get {
      logRequestResult("my-service") {
        extract(_.request) { req ⇒
          val futureResponse = Source.single(req).via(myFlow).runWith(Sink.head)
          complete(futureResponse)
        }
      }
    }

  Http().bindAndHandle(route, "127.0.0.1", 9000)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

akka-http:带流程的完整请求 的相关文章

随机推荐

  • 从地理坐标获取时区的算法

    我想编写应用程序 用户可以在地图上指向任何地方 不仅是城市 并获取该地方的时区 我应该使用什么数据结构 应用程序没有互联网连接 和算法 我在哪里可以获得所需的数据 我不会比将地图划分为 24 个矩形更准确 我将用 Java ME 编写我的应
  • CMake:设置目标源目录

    我有一个 C 项目 其中所有实现源文件 cpp 都驻留在src项目目录中的目录 某些文件位于其他子目录中 假设有 50 个文件src foo 我需要将这些文件列为add library和 或target sources功能 现在 无论在哪里
  • 如何让我的 Spring-JUnit 测试认为它在 GenericApplicationContext 中运行?

    我在用着Spring 3 2 6 RELEASE JUnit 4 11 and DWR 3 0 0 rc2 我的问题是 当运行 Spring JUnit 集成测试时 如何模拟在org springframework context supp
  • hadoop中有超过120个计数器

    Hadoop 计数器大小有限制 默认为 120 我尝试使用配置 mapreduce job counters limit 来更改它 但它不起作用 我看过源代码 就像 org apache hadoop mapred Counters 类中的
  • 如何重新映射 CoC VIM 自动完成键?

    我正在尝试将自动完成键从 Enter 键重新映射到 TAB 因为当我打算转到下一行时 我会继续自动完成 下面的代码是 coc 的默认选项 我认为这是我应该能够重新映射密钥的地方 make
  • 在其他 JAR 中定义时 Spring Aspect 未执行

    我有一个由两个子项目组成的项目 这两个子项目都是 Spring 项目 并且每个子项目都有一个 applicationContext xml 一种是框架项目 最终作为 JAR 另一种是实际应用程序 最终作为 WAR 并依赖于 JAR 并将 J
  • 使用 MVVM 在 WPF 中显示 HTML

    我将 HTML 源字符串保存在 HTMLReport 字段中名为 Report 的 SQL Server 表中 字段类型为 NTEXT 现在我需要显示存储的 HTML 进入 WPF 窗口 HTML 标签和内联 CSS 需要在此 WPF 窗口
  • 使用 python -c 开关的长程序

    我想用 python 来做我一直用 bash 做的事情 是否可以对长程序使用 c 开关 例如有两个语句的 for 循环 这将使我可以直接从命令行使用 python 就像 bash 或 php 一样 Thanks 编辑 不知道我是如何错过它的
  • 将数据从 firebase 函数返回到应用程序

    在我的离子应用程序中 我正在连接到条纹支付网关 我有一个函数firebase这是在更新客户时触发的 exports updateStripeCustomer functions database ref Customers userId o
  • 安装 Zombie.js 错误:ReferenceError:未定义集合。我究竟做错了什么?

    背景 我目前正在阅读 使用 Node 和 Express 进行 Web 开发 作者 Ethan Brown 对于那些学习 Node 和 Express 的人来说是一本很棒的书 我被困在第 5 章 质量保证上 一切都很顺利 首先我运行了以下命
  • 如何将 java.util.Date 中的时间存储到 java.sql.Date 中

    我想转换java util Date to java sql Date但我也想要小时 分钟和秒 但 java sql Date 只能用于存储 date no time 我尝试了下面的代码 但它只给出了年 月和日java sql Date o
  • Wix重大升级,无论新文件版本如何都替换文件

    我的 WiX 安装程序 Wix 3 10 MSI 4 5 使用MajorUpgrade用于更新 要安装的文件是用heat exe在预构建中 当前 较旧的 msi 文件包含一个文件nlog dll 附带 NuGet 包v4 1 0 其文件版本
  • Pyinstaller 与 pandas 和 numpy,exe 在运行时抛出错误

    我正在尝试使用 Pyinstaller 制作一个小型测试程序的 EXE 我创建了一个虚拟环境来缩小 exe 的大小 因为 anaconda 包含它拥有的每个库 运行时出错 Traceback most recent call last Fi
  • 分配Python字典文字:语义有保证吗? [复制]

    这个问题在这里已经有答案了 简单的问题 Python 2 6 6 r266 84292 Aug 9 2016 06 11 56 GCC 4 4 7 20120313 Red Hat 4 4 7 17 on linux2 Type help
  • 如何在 UICollection 补充视图中使用 UIButton?

    我试图将 UIButton 放置在 UICollectionView 补充视图 页脚 中 我已使用故事板将 UIButton 连接到 UICollectionViewCell 的子类 并且可以以编程方式更改其属性 包括背景图像 但是 当我将
  • 允许 Django 管理界面中的用户名中包含“-”字符

    在我们的网络应用程序中 我们需要在用户名中允许使用破折号 我已经使用此正则表达式为消费者注册过程启用了该功能 r w 我如何告诉管理应用程序 以便我可以在 auth gt users 中编辑用户名以允许用户名中使用 字符 目前 我无法编辑任
  • 如何从查询字符串中删除空白值参数

    我有一个搜索表单 有很多选项 通过 Get 请求提交到路线 网址是这样的 http localhost 3000 restaurants search utf8 E2 9C 93 city cuisine number of people
  • System.IO.Directory.GetFiles 的多个文件扩展名 searchPattern

    设置的语法是什么多个文件扩展名 as searchPattern on Directory GetFiles 例如过滤掉文件 aspx and ascx扩展 TODO Set the string searchPattern to only
  • Qt模态对话框和主流程

    我有一个在主窗口中执行某些进程的程序 我需要一个模式对话框 其中显示一些自定义元素以显示进度 它还必须阻止用户与主窗口的交互 显示对话框时应运行主进程 对于这个目的 哪种方法更好 在qt中 实际上 这听起来很简单 除非我误解了你的问题 QD
  • akka-http:带流程的完整请求

    假设我设置了一个任意复杂的Flow HttpRequest HttpResponse Unit 我已经可以使用所述流程来处理传入请求 Http bindAndHandle flow 0 0 0 0 8080 现在我想添加日志记录 利用一些现