澄清 http4s 中路径、挂载点和前缀的概念

问题描述

我试图澄清一些让我对 http4s 路径感到困惑的概念。

引用文档,

路径信息

路径匹配是在请求的 pathInfo 上完成的。路径信息是请求的 URI 路径,后面是:

  • 服务的挂载点
  • 前缀,如果服务由路由器组成
  • 前缀,如果服务是用 TranslateUri 重写的

匹配 request.pathInfo 而不是 request.uri.path 允许组合多个服务而无需重写所有路径匹配器。

我想澄清一下挂载点和前缀的概念。

  1. 有人可以举一个挂载点定义与前缀的例子吗?
  2. 服务是否可以同时具有不同的挂载点和前缀?

我怀疑这个例子中的挂载点是/hello

HttpRoutes.of[IO] {
        case GET -> Root / "hello" => Ok("hello")
}
  1. 在编写以下代码时,我们定义了 2 个前缀 //api,但它们是否也考虑了挂载点?
val services = tweetService <+> helloWorldService

val httpApp  = Router("/" -> helloWorldService,"/api" -> services).orNotFound

因为引用了文档,我们有:

我们从一个 BlazeServerBuilder 开始,然后挂载 / 的基本路径下的 helloWorldService 和其余的 /api

基本路径下的服务
  1. 对于第二个前缀 /api
  2. 中的 helloWorldServiceRoot 是什么
case GET -> Root / "hello"

/api,如 Root = /api 吗?

  1. 这种情况下 helloWorldService 的挂载点是什么,前缀是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...