我正在玩 scala 中的 tagless final。我使用 pureconfig 加载配置,然后使用配置值设置服务器端口和主机。 片段 def create[F[_]: Async] = for { config <- ConfigSource.default.at ...
我正在玩 scala 中的 tagless final。我使用 pureconfig 加载配置,然后使用配置值设置服务器端口和主机。 片段 def create[F[_]: Async] = for { config <- ConfigSource.default.at ...
我正在尝试为特定路由创建一个 post 端点,但收到错误消息模式类型与找到的预期类型不兼容 ContextRequest[F,A],需要:Request[F] case _ @ POST -> Root / "batch-notify" as _ => handler ...
我正在学习 http4s 并尝试文档中的基本示例,我注意到了一些奇怪的事情。 简单地启动和停止服务器就可以正常工作,但是如果发送了任何请求,正常关闭大约需要 30 秒(在此期间仍会处理和响应新的传入请求)。 这是代码:object Main extends IOApp.Simple { val ...
我正在使用 http4s 开发一个 scala web 应用程序并将 tapir 用于端点。 我是新手,现在我正在寻找一种更好的方式来组织我的项目。 现在我有不同的类,其中包含端点描述和服务器逻辑。 它们有一个类似 java-spring 的名称 controller。例如: 然后将它们收集在一个 ...
在我的一个项目中,我们正在从akka (v10.2.9) 转移到http4s (v0.23.12)。 在akka中,我们使用akka.http.scaladsl.Http hostNameVerifier在内部为服务器创建HttpConnectionContext创建http server ser ...
因为这应该是纯粹的功能,所以我把这个限制器 class 放在一起(到目前为止它可能包含错误,因为我还不能使用它,但你明白了)。 但是我该如何实际使用它呢? 我继续尝试根据 http4s 的文档编写客户端中间件,但类型无法解决,中间件 IIUC 我应该使用Client.run但我不能在 IO 中暂停 ...
我正在尝试将 Blaze 客户端用于 http4s 以进行 http 调用。 当返回 200 响应时它工作正常但在 HTTP 500 或 400 的情况下我无法弄清楚如何检索从服务器返回的详细错误消息。 我只能在该客户端的日志中看到以下内容。 2022-11-10 23:37:40 信息 - 关 ...
我正在为如何将命令式风格转换为功能风格而苦苦挣扎。 在命令式 web 请求中,我习惯于说以下伪代码: 我正在尝试使用 http4s 将其转换为功能样式。 上面的代码看起来......对我来说很糟糕,我不知道如何让它变得更好。 我的目标是保留此处包含的所有 http 样式抽象,因为我不想泄漏 http ...
我正在使用Scala 3和http4s 1.0.0-M35 。 我想将身份验证与 json 处理一起使用。 但是出现错误 它建议一些进口: 但是导入后,我又遇到了一个错误: sendMessageRequest类型为org.http4s.ContextRequest[cats.effect.IO, ...
我有以下使用多部分文件上传的片段。 其中一部分读取为字节,而另一部分读取字符串。 读取为 Byte 的一个显示正确的大小,而读取为 String 的一个仅读取一行。 我错过了什么? val routes = HttpRoutes.of[IO] { case GET -> Root ...
我的项目是一个带有前端的游戏服务器。 对于前端,我使用的是 scala.js。 项目是交叉构建的,因此我可以在 jvm(服务器)和 js(客户端)之间共享文件。 交叉构建方法: https://www.scala-js.org/doc/project/cross-build.html 客户端和服务 ...
我正在尝试获取客户端用来访问 Http4s 中的网络服务器的 URL 的开头。 即给定一个Request[F]我想根据服务器的部署位置获取字符串"http://localhost:8080"或"https://my-app.company.com" 。 在使用 Http4s 的服务器实现中,当通过 ...
我开始学习 Http4s,在工作中我们可能需要将使用 Akka Http 实现的 Rest API 迁移到 Http4s。 例如,我可以像这样定义一个自定义指令: trait CustomDirectives { def extractUUID: Directive1[UUID] = { ...
我在测试我的第一个 ZIO+HTTP4S 应用程序时遇到问题。 测试挂起且未完成。 我的应用程序(简化)的代码是 这是我的测试代码。 请注意,它基本上是从THIS OTHER STACKOVERFLOW QUESTION 复制粘贴的 问题是一旦服务器启动,测试就会停止运行并且不会执行。 outpu ...
当我尝试创建具有多个主体形状的端点时,我只是遇到了一个问题。 我的 model 看起来像这样: 我正在尝试创建此端点: 端点的实现如下所示: 这只是我正在尝试创建的示例。 我添加了基于此的架构推导: 我创建了一个测试,用于尝试基于 Akka HTTP 的端点: 我得到的错误如下: 我正在关注此文档。 ...
我们有一个用例,对于单个传入请求,微服务必须向其他微服务发出许多(在最坏的情况下接近 1000 个)传出 HTTP 调用以获取 GET 一些详细信息。 我们的服务是使用 Scala、Http4s 和 Cats-Effect 构建的,并且使用 http4s-blaze-client 库进行出站 HTT ...
我正在玩弄 http4s 多部分文件上传,我开始工作了。 但是,对于大于 ~500kb 的文件上传,多部分解析会抛出异常。 解析多部分正文时抛出的客户端错误是HTTP 422:请求正文无效。 服务器端的错误是“部分未正确终止” 由于这显然与上传文件的大小有关,我怀疑 http4s 中必须有一个配置以 ...
我正在尝试使用 http4 在 scala 中编写一个简单的 http 服务器。 但是当我按照教程创建 BlazeServer 构建器时,它会说我需要提供一个定时器 [IO](给我错误未指定的值参数:定时器:定时器 [IO]),我似乎找不到任何关于为什么的信息。val server = BlazeS ...
Request 中有一个类型参数IO ,如http4s Request[IO] 。 为什么有必要,我们在这里有什么效果,什么时候执行这个效果? ...
我收到一个 ajax POST 请求,需要将正文数据处理为 ByteBuffer 并使用 Http4s (0.23.7) 以 Array[Byte] 响应。 这是迄今为止我已经能够把东西放在一起,虽然它还没有工作:// http4s/fs2/cats imports... + import java ...