问题标签 [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 - 如何将 Scala HTTP4S 应用程序部署到 Heroku?
我正在尝试将 Scala HTTP4S 应用程序部署到 Heroku。
使用上述命令从 HTTP4S 获取 giter8 模板。
将 about 行放入我的 build.sbt 文件中。
将以上内容添加到我的 plugins.sbt 文件中
然后我创建了一个 Procfile,它具有以下内容
我的 application.conf 文件中没有任何内容,我不确定如何为上述 Procfile 指定端口。
我研究过:https ://devcenter.heroku.com/articles/deploying-scala以及一些 Youtube 视频。然而,所有的 Youtube 教程各不相同,没有一个使用 HTTP4S。
输入 heroku logs -a glacial-waters-76053 时出现的错误
邮递员返回 503 服务不可用错误。
scala - 使用 ZIO 测试套件集成测试 HTTP 服务器
我试图找出为支持两个端点的 Http4s 应用程序编写集成测试的习惯用法。我通过在新光纤上分叉它来启动Main
应用程序类,然后在发布. 然后我将其转换为 a并通过具有多个s的整体传递它。ZManaged
ZManaged
ZLayer
provideCustomLayerShared()
suite
testM
- 我在正确的轨道上吗?
- 它的行为不像我预期的那样:
- 尽管以上述方式管理的 httpserver 已提供给包含两个测试的套件,但它在第一次测试后被释放,因此第二次测试失败
- 测试套件永远不会完成,只是在执行两个测试后挂起
为下面的代码半生不熟的性质道歉。
测试的输出是第二个测试失败,而第一个测试成功。我进行了足够多的调试,发现 HTTPServer 在第二次测试之前已经关闭。
并且无论我是否在 sbt testOnly 上运行 Intellij 的测试,测试过程都会在这一切之后一直挂起,我必须手动终止它。
scala - HttpRoutes[RIO[E, *]] 和 HttpRoutes[zio.Task] 之间的编译问题
试图编译这个小型 ZIO 友好的 Tapir/Http4s 端点描述
并继续把它放在最后一行。
Type mismatch. Required: HttpRoutes[RIO[E, *]], found: HttpRoutes[zio.Task]
任务是 RIO 的子类型,所以这应该可以正常工作吧?或者我在这里错过了什么。这个世界有点菜鸟,所以非常感谢一些帮助。
scala - 如何将 http4s 服务器定义为 ZIO ZLayer,以便在主中注入和获取?
帮助我使用 ZLayers 定义一个 http4s。我正在学习,我很困惑。我想将 http 服务器作为一个组件。但我不知道如何组合 ZManageds 和 ZLayers 以便编译。
创建一个需要Runtime[ZEnv]
? ZEnv
或者创建一个需要 a 的层并为其生成运行时是否更有意义。
我不知道如何ZManaged[..., ..., Server]
从Layer
这里主要访问。我不完全理解这些access
方法。
也在底部,但重要性较低
PR 中的相同内容,请随时发表评论 https://github.com/kovacshuni/itsaren/pull/1
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 - 如何将 java.util.UUID 转换为 doobie.syntax.SqlInterpolator.SingleFragment?
我正在尝试使用 doobie、http4s 和 circe 建立一个带有数据库的简单 scala 应用程序。
如何将 java.util.UUID 转换为 doobie.syntax.SqlInterpolator.SingleFragment ?
scala - 在 http4s 中记录 InternalServerError 请求的 url
如果发生未处理的错误,http4s 返回 InternalServerError。发生 InternalServerError 时是否可以记录请求的 url?如果是,最好的方法是什么?
scala - 在 Http4s API 中将 `Option[A]` 转换为 Ok() 或 NotFound()
我有一个如下所示的 API:
和一个看起来像这样的路由:
因此,当有 时None
,它会转换为 404。由于有多个路由,因此.flatMap { ... }
会重复。
问题:如何将其移动到.orNotFound
特定于我的项目的单独帮助函数中?
我的尝试:
为了让我的事情变得简单(并避免F
最初的参数化),我试图在里面定义这个comicsRoutes
:
但是???
这里有什么?似乎不是Response
或Status
。此外,它.flatMap { ... }
是在 下制作的import dsl._
,但我想把它移到更远的地方。什么是好地方?它是进入路由文件,还是我把它放在一个单独的ExtendedSomething
扩展文件中?(我希望这可能是相关的???
,Something
但我对缺少的类型有点困惑。)
(同样重要的是,我如何找出???
这里有什么?我希望???
在类型级别可以给我一个“类型漏洞”,而 VSCode 的悬停功能提供了非常零星的文档价值。)
scala - 一种遍历分页响应 Http4s 的简单方法
我正在尝试在不使用字符串插值的情况下处理分页,并且还利用了 http4s 功能。我遇到过OptionalQueryParamDecoderMatcher
,我不知道它是否适合我的用例。因此响应包含标题,该标题包含有关 Link 属性中的页数的信息。它的 rel 设置为 prev、next、first 或 last。如下 :
我的想法是获取指定为最后的页数(即总页数),然后加一以获得所有结果。我想到的第一种方法是字符串插值,但我相信会有一种更简单的方法来做到这一点,尤其是利用 http4s。
有人可以启发我吗?我对你的建议持开放态度。
注意:httpRoute 被指定为这个例子:
scala - 根主机上带有参数的 GET 请求的 http4s 路由匹配
我有简单的路由映射功能,它使用http4s
:
出于某种原因,当我尝试使用一些不是我的服务器的参数传递GETpublished
请求时,我看到了showAll
方法的结果。
例如,如果我发送获取请求http://{host}:{port}/?foo=somevalue
我希望看到类似org.http4s.dsl.impl.Status.BadRequest
或org.http4s.dsl.impl.Status.NotFound
的东西,Response
但我发现它case GET -> Root
实际上匹配。
为什么会发生这种情况以及如何避免这种匹配?
当我们只想为某些指定的参数(或类型)而不是所有可能的输入定义函数时,部分函数被用于这种情况。