gpt4 book ai didi

scala - 在运行时获取 Akka HTTP 的版本

转载 作者:行者123 更新时间:2023-12-04 13:40:56 27 4
gpt4 key购买 nike

我的服务器建立在 Akka HTTP 之上。如果我不设置 Server header ,akka-http/10.1.8 的外部可配置默认值将由 Akka 自动添加。我知道如何通过添加 respondWithHeaders 用我自己的服务器覆盖它围绕我的整个路由树的指令:

   respondWithHeaders(Server(myProductVersion)) {
// my routs here
}

这按预期工作;服务器响应 header 现在读取我的产品。不过,我想要的是也包含 akka 的 header ,因为我喜欢它并且不介意向全世界介绍我的服务器堆栈。鉴于 Server.apply 的签名方法,我应该可以这样做:
   respondWithHeaders(Server(myProductVersion, akkaProductVersion)) {
// my routs here
}

...我的问题是我不知道如何得到那个 akkaProductVersion目的!

最佳答案

尝试阅读 akka.http.version像这样的配置属性

system.settings.config.getString("akka.http.version")

所以你可以试试
Server(
myProductVersion,
system.settings.config.getString("akka.http.version")
)

根据 default configuration
    # The default value of the `Server` header to produce if no
# explicit `Server`-header was included in a response.
# If this value is the empty string and no header was included in
# the request, no `Server` header will be rendered at all.
server-header = akka-http/${akka.http.version}

我们可以看到 akka-http 是如何读取 server-header构建时 ServerSettings here :
c.getString("server-header").toOption.map(Server(_)),

关于scala - 在运行时获取 Akka HTTP 的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57189261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com