问题标签 [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.
scala - http4s 客户端返回部分有效载荷
我正在使用AsyncHttpClient
http4s-0.19.0-M2 进行客户端调用:
有时远程端超时,我在日志中看到以下内容:
但是,它看起来doSomethingWithResponse()
仍然被调用,但带有部分resp
字符串。有没有办法改变这种行为,以便在http.expectOr
无法检索整个有效负载时调用失败?
scala - 使用流建模多个函数调用(以安全的 FP 方式)
给定一个要被多次调用的函数A => IO[B]
(又名Kleisli[IO, A, B]
),并且有副作用,比如更新数据库,如何将这样的多次调用委托给一个流(我猜Pipe[IO, A, B]
)(fs2,monix observable/iterant)?这样做的原因是能够在一个时间窗口内累积状态、批量调用等。
更具体地说,http4s 服务器需要一个Request => IO[Response]
,所以我正在研究如何对流进行操作(为了上述好处),但最终为 http4s 提供了这样的功能。
我怀疑它在幕后需要一些相关 ID,我对此很好,我对如何从 FP 的角度安全和正确地进行操作更感兴趣。
最终,我期望的签名可能是这样的:
Pipe[IO, A, B] => (A => IO[B])
, 这样对 Kleisli 的调用就会通过管道传输。
作为事后的想法,是否有可能背压?
scala - 值解码不是 org.http4s.AuthedRequest 的成员
我使用http4s
的是 Circe 0.18 版,当我使用以下代码value decode is not a member of org.http4s.AuthedRequest
将 json 正文转换为 a 时出现错误:case class
AuthedService
json - Scala 猫 - 编码/解码 json 的问题
我创建了一个简单的路线:
implicits
以及用于输入和输出的 jsons :
但是当我通过 Postman 运行这个程序时,我得到了一个错误:
The request body was invalid.
带有422
错误代码。我认为json编码器和解码器有问题,因为我的要求非常简单明了:
我试图在路由中添加一个隐式解码器:
但这也无济于事。谁能帮助我并告诉我如何为 jsons 创建好的编码器和解码器?我使用circe
库进行解析。
scala - Scala、cats、http4s - 无法识别来自 Http4s 的 <+> 符号
我创建了两条Http4s
路线:
现在在我的main
方法中,我想这样称呼这条路线:
但是当我编译这段代码时,我得到了一个错误:
这对我来说很奇怪,因为<+>
当我在路由类上使用 ctrl+space 时我通常可以使用这个符号,而且我有很好的导入:
无法找到如何解决此问题并用于<+>
调用路由类。也许是intellij问题?有人能帮我吗?
apache - 了解 HTTP 服务器和 lclient 如何理解请求的媒体类型
我编写了一个 http4 客户端来将 Json 数据推送到将接受 http 请求或发布的服务器。现在,我的代码适用于某些系统而不适用于其他系统?我不知道问题出在哪里。它是服务器还是客户端。下面是对服务器的 POST 跟踪以及从服务器返回到客户端的响应。有人可以向我解释为什么这会失败吗?服务器是否告诉我它期待 JSON 以外的东西?谢谢你 !!!
我试过使用不同的标题,结果相同。我尝试以多部分表单数据媒体类型发送 CSV,这也失败了,响应相同????请注意响应,ACCEPT=multipart/form-data header THE POST REQUEST
响应
scala - WebSocket 端点中的“Spawn”并发效果
我有以下代码:
createService
是一个创建新服务的函数。创建新服务是一个非常复杂的过程,它涉及触发 CI 管道,等待它们完成,然后以相同的方式触发更多 CI 管道。它接收到的队列将用于向浏览器报告当前正在执行的操作。
我想同时“生成” createService 并让它运行直到完成。但是同时我想立即将 WebSocket 返回给客户端。Aka 我不能在“生成”createService 时阻止。
我被困住了。我只能考虑使用shift
,但这意味着 for comprehension 中的下一行将阻止等待createService
完成,然后将 websocket 返回给客户端。
我的方法错了吗?我究竟做错了什么?
scala - 在 http4s 中发送 JSON 响应的正确方法是什么?
不久前,我从 akka-http 切换到 http4s。我想做正确的基本事情之一——JSON 处理,特别是发送 JSON 响应。
我决定使用带有 ZIO 的 http4s 而不是猫,所以下面是 http 路由的样子:
如您所见,JSON 序列化部分非常冗长:
有没有其他方法可以在响应中发送 JSON?