在名称中使用破折号的Akka HTTP参数

时间:2019-07-17 15:08:23

标签: scala akka akka-http

我有一些查询参数的名称中带有短划线。当我尝试写类似

的东西时
parameter('name-with-dash.as[String])

...在第一个破折号之后,它什么都不能识别为参数名称。

添加多余的单引号不能解决问题:

parameter(''name-with-dash'.as[String])

name-with-dashes周围使用双引号也不能解决问题,我只收到expected ')'通常位于前面的'消息。

parameter('"name-with-dash".as[String])

如果我忽略开头的单引号,则intellij不会显示任何错误,但会出现如下所示的编译错误:

Error:(27, 17) type mismatch; found : String("Name-With-Dash")
required: ?{def as: ?} Note that implicit conversions are not applicable because they are ambiguous:
 both method _string2NR in trait ToNameReceptacleEnhancements of type(string: String)akka.http.scaladsl.common.NameReceptacle[String]
 and method validateModel in object SomeObject of type (value: String)akka.http.scaladsl.server.Directive1[String]
 are possible conversion functions from String("Name-With-Dash") to ?{def as: ?}
      parameter("Name-With-Dash".as[String]).flatMap(p => provide[SomeIdentifier](SomeIdentifier(p))) |

已修复:

此问题已通过以下格式修复

parameter("name-with-dash")

即。仅带双引号且没有.as[String]

1 个答案:

答案 0 :(得分:0)

一个简单的

parameter("name-with-dash".as[String])

为我工作