问题标签 [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.
json - Scala HTTP4s 打印整个 HTTP 错误响应
我编写此代码是为了使用 http4s 客户端库对 REST Web 服务进行 POST 调用
现在,代码收到 400 Bad Request 错误,我不知道为什么。我无法在上面的代码中打印整个错误正文。
当我通过 POSTMAN 进行相同的 REST 调用时,我可以看到 400 Bad request 错误正文
如何在我的代码中打印整个错误正文?
此外,在邮递员中,当我设置 Content-Type 和 Accept 标头时,post 调用成功。在上面的代码中,我设置了相同的 2 个标头和相同的 json 正文,但此代码仍然出现 400 错误。
scala - 使用 Http4s 的 Circe 编码器和解码器
我正在尝试使用 http4s、circe 和 http4s-circe。
下面我尝试使用 circe 的自动推导功能。
我得到这两个编译器错误的多个实例
authentication - 带有 Camel http4 组件的 mod_ntlm
大家好,
使用 Camel http4 组件对 mod_ntlm 保护的端点进行身份验证是否存在已知限制?
在我们的 Camel 服务中,我能够成功地对使用 jcifs 设置保护的 NTLM 保护端点进行身份验证,但是在访问 mod_ntlm 保护服务时出现以下错误:
提前致谢!
http4s - 如何增加http4s的请求超时
我有一个请求正在与需要时间响应的后端数据库交谈。http4s 正在抛出请求超时。我想知道是否有增加请求超时的属性?
谢谢萨德。
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 编码器吗?
完整代码:
scala - 在 http4s 后端和 Binding.scala 前端之间进行通信
我正在尝试将 Binding.scala 与现有的 http4s 后端服务一起使用,但对它们如何组合在一起有点迷茫。我不确定如何使用 Binding.scala “绑定”一个说 fs2Task
或猫的效果。IO
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:嗯,我发现这个库很容易用于简单的客户端编程。鉴于对支持任务、流等的强调,我认为批处理并行查询应该以某种方式可行。
scala - HttpService 上的 Await.result
我有一个带有 http4s 0.15.16a 和 slick 3.2.1 的 scala 项目,步骤如下:
- 通过 rest call 接收 ID
- 将 ID 传递给以 Future 响应的 MySlickDAO
- 在 MySlickDAO 返回的 Future 上调用 Await.result(res, Duration.Inf)
- 创建 json
问题是我使用了 Await.result ,这是不好的做法,有更好的解决方案吗?
这里的代码:
}
swagger - 从 scala 源代码 (http4s) 生成 Swagger / OpenAPI 规范
所以我不是 swagger 专家,但所有使用 swagger 的系统都要求您使用 JSON 或 YAML 中的 swagger 规范来定义 API 的所有端点(等等)。
我的问题是:是否有根据实际源代码生成这些规范文件的方法?我在问,因为当您开始添加属性或返回略有不同的结果时,似乎很难保持端点代码和文档同步。
所以当我有这段代码时(使用 http4s & RhoService):
如果它能够产生(以某种方式:)那就太好了
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