问题标签 [http4s-circe]
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.
postgresql - Doobie 的 PostgreSQL 错误:PSQLException:列索引超出范围:3,列数:2
我正在练习 Scala、Doobie 和 PostgreSQL。该数据库位于 Docker 容器中。我可以发布和更新职位,但无法获取所有职位。我不断收到以下错误。
我研究了其他类似的问题,但我的不同之处在于我只是想从数据库中获取所有内容,所以我不理解这个专栏问题。
我开始认为我需要一个 circe 编码器来从数据库中读取 Json ???下面的circe解码器在leftMap和show上抛出错误
scala - Http4s 客户端以递归方式将实体编码为 x-www-form-urlencoded
我有如下要求
我正在查看源代码,它看起来像withEntity
继承了嵌套的标题,EntityDecoder
所以上面的代码默认为Content-Type: application/json
. 好像我明确地传递了UrlForm
一切都很好。
不幸的是,我遇到的 API 期望数据为x-www-form-urlencoded
,并且考虑到目标 API 的复杂性以及所有不同的端点/请求,我想找到一种将给定案例类编码为表单的方法。最好的方法是什么?
我努力了:
显式指定
Content-Type
但这不起作用,因为继承的类型优先Product
构建从to的隐式泛型转换UrlForm
(目前的扩展方法)
这里的问题是UrlForm
在映射的两边都需要一个字符串。如果我只是用.toString
它转换东西,因为嵌套类型例如:
导致以下json
无效
我试过asJson
而不是,toString
但circe无法决定正确的KeyEncoder
解决这个问题的正确方法是什么,以便将给定Product
的内容编码到流中?
scala - Http4s解码器如何自定义无效字段的错误消息
我有以下代码:
我的堆栈是 http4s + zio。
我为这个案例类添加了自定义解码器,其中有一行:
发布无效的 json 和无效的电子邮件返回给我:
HTTP/1.1 422 无法处理的实体内容类型:文本/纯文本;charset=UTF-8 日期:2021 年 1 月 19 日星期二 16:46:27 GMT 内容长度:29
请求正文无效。
响应代码:422(无法处理的实体);时间:681ms;内容长度:29字节
我想定制。在 http4s 代码中,我看到 InvalidMessageBodyFailure。但我在文档中找不到如何自定义此响应的任何信息。
有人可能已经试过了吗?
谢谢
编辑:
示例用户创建请求:
json请求:
这可以使用这样的代码来实现:
但我想知道它是否可以通过一些已经完成但没有记录的http4s核心功能来简化:)
scala - Http4s circe 无法解码孩子
我有错误模型,例如:
在我的路线中,我基于此模型生成 http 错误类型,即:
但问题是我需要添加这个 asInstanceOf,否则 circe 看不到编码器。我的编码器看起来像:
有没有办法避免在那里做 asInstanceOf ?
json - 如何使用 Circe 解码包含 json 的数组
我有我的 circe 解码器,如下所示。我相信我的情绪解码器可以正常工作,所以不会在下面包含它。
我的 Json 看起来像这样
我只是想要value
和value_classification
。可以看出,这些值位于一个数组中。
我怀疑 Circe 正在寻找解码 aList[data]
但我不想创建case class DataInfo(list: List[Data])
它只是感觉不对。