问题标签 [http4s]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1664 浏览

json - Scala HTTP4s 打印整个 HTTP 错误响应

我编写此代码是为了使用 http4s 客户端库对 REST Web 服务进行 POST 调用

现在,代码收到 400 Bad Request 错误,我不知道为什么。我无法在上面的代码中打印整个错误正文。

当我通过 POSTMAN 进行相同的 REST 调用时,我可以看到 400 Bad request 错误正文

如何在我的代码中打印整个错误正文?

此外,在邮递员中,当我设置 Content-Type 和 Accept 标头时,post 调用成功。在上面的代码中,我设置了相同的 2 个标头和相同的 json 正文,但此代码仍然出现 400 错误。

0 投票
1 回答
4626 浏览

scala - 使用 Http4s 的 Circe 编码器和解码器

我正在尝试使用 http4s、circe 和 http4s-circe。

下面我尝试使用 circe 的自动推导功能。

我得到这两个编译器错误的多个实例

0 投票
0 回答
125 浏览

authentication - 带有 Camel http4 组件的 mod_ntlm

大家好,

使用 Camel http4 组件对 mod_ntlm 保护的端点进行身份验证是否存在已知限制?

在我们的 Camel 服务中,我能够成功地对使用 jcifs 设置保护的 NTLM 保护端点进行身份验证,但是在访问 mod_ntlm 保护服务时出现以下错误:

提前致谢!

0 投票
1 回答
2865 浏览

http4s - 如何增加http4s的请求超时

我有一个请求正在与需要时间响应的后端数据库交谈。http4s 正在抛出请求超时。我想知道是否有增加请求超时的属性?

谢谢萨德。

0 投票
1 回答
1079 浏览

json - 在 http4s 上运行时,使用 Circe 将递归数据结构编码为 Json

我正在构建一个非常简单的服务,它应该返回一个通过递归案例类定义的树状结构:

但由于某种原因,我不断收到以下编译错误:

错误:(24, 70) 找不到参数编码器的隐含值:io.circe.Encoder[Seq[com.ansarada.ds.docviewer.server.Main.Node]]
隐式验证节点编码器:EntityEncoder[Seq[Node]] = jsonEncoderOf[序列[节点]]

错误:(24, 70) 方法 jsonEncoderOf 的参数不足:(隐式编码器:io.circe.Encoder[Seq[com.ansarada.ds.docviewer.server.Main.Node]])org.http4s.EntityEncoder[Seq[ com.ansarada.ds.docviewer.server.Main.Node]]。未指定值参数编码器。隐式验证节点编码器:EntityEncoder[Seq[Node]] = jsonEncoderOf[Seq[Node]]

代码被编译,一旦我删除了一个子元素定义并将一个节点变成一个平面对象:

任何人都可以帮我为嵌套孩子的情况定义正确的 Json 编码器吗?

完整代码:

0 投票
1 回答
360 浏览

scala - 在 http4s 后端和 Binding.scala 前端之间进行通信

我正在尝试将 Binding.scala 与现有的 http4s 后端服务一起使用,但对它们如何组合在一起有点迷茫。我不确定如何使用 Binding.scala “绑定”一个说 fs2Task或猫的效果。IO

0 投票
1 回答
733 浏览

http4s - 如何在 http4s 和 fs2 中并行化 REST API 爬虫?

我在这里用 http4s & fs2 编写了一个顺序 REST API 爬虫:

https://gist.github.com/NicolasRouquette/656ed7a2d6984ce0995fd78a3aec2566

这是查询 REST API 服务以获取一组起始 ID,获取一批 ID 的元素,并根据在这些元素中找到的交叉引用 ID 继续,直到没有新 ID 可获取并返回所有 ID 的映射提取的元素。

这行得通;但是,性能不足——太慢了!

由于我无法访问服务器,因此我尝试尝试不同的批量大小,从 10、50、100、200、500 甚至在单个查询中批量处理所有 ID。查询时间随着批量大小的增加而显着增加。在大尺寸(500 和所有尺寸)下,我什至从服务器收到了 HTTP 500 响应。

我想尝试使用线程池以负载平衡方式批处理并行查询;但是,我不清楚如何根据 fs2 文档执行此操作。

有人可以提供如何实现这一目标的建议吗?

关于使用 http4s 和 fs2:嗯,我发现这个库很容易用于简单的客户端编程。鉴于对支持任务、流等的强调,我认为批处理并行查询应该以某种方式可行。

0 投票
2 回答
184 浏览

scala - HttpService 上的 Await.result

我有一个带有 http4s 0.15.16a 和 slick 3.2.1 的 scala 项目,步骤如下:

  1. 通过 rest call 接收 ID
  2. 将 ID 传递给以 Future 响应的 MySlickDAO
  3. 在 MySlickDAO 返回的 Future 上调用 Await.result(res, Duration.Inf)
  4. 创建 json

问题是我使用了 Await.result ,这是不好的做法,有更好的解决方案吗?

这里的代码:

}

0 投票
3 回答
3031 浏览

swagger - 从 scala 源代码 (http4s) 生成 Swagger / OpenAPI 规范

所以我不是 swagger 专家,但所有使用 swagger 的系统都要求您使用 JSON 或 YAML 中的 swagger 规范来定义 API 的所有端点(等等)。

我的问题是:是否有根据实际源代码生成这些规范文件的方法?我在问,因为当您开始添加属性或返回略有不同的结果时,似乎很难保持端点代码和文档同步。

所以当我有这段代码时(使用 http4s & RhoService):

如果它能够产生(以某种方式:)那就太好了

0 投票
1 回答
820 浏览

scala - 使用 rho 在 http4s 中添加异常处理

我正在使用 http4s & rho(主要用于 Swagger 集成)

我的服务正在使用这个 DAO 对象,该方法可以抛出异常(失败Task

在我的 RhoService 中,我可以像这样处理这些

这样我可以确保无论我返回什么,它总是一个Json

因为我不想用类似的错误处理来污染每个 RhoRoute,所以我想做一些使用默认 http4s.dsl 可能的事情,但我似乎无法使用 rho:

1.创建默认错误处理程序

例如添加

这将失败,因为 NotImplemented 不是响应(我可以在这些上调用 .pure 以进行类型检查)但是代码将编译,但我得到了这个异常:

无法从 fs2.Task[Product with Serializable] 转换为实体,因为找不到 EntityEncoder[fs2.Task[Product with Serializable]] 实例。好的(dao.readAll.map(_.asJson)).handleWith(errorHandler)

2.为每个RhoRoute添加errorhandler

在定义 rhoRoute 之后,我想映射它并将错误处理程序添加到每条路由,所以在 r 处做一些事情,让我在某处添加“handleWith”(下面将不起作用)

如果我不能让它工作,我可能会回到默认的 dsl,但我真的很喜欢 rho