gpt4 book ai didi

scala - 如何匹配路由中的特定接受 header ?

转载 作者:行者123 更新时间:2023-12-04 23:53:58 25 4
gpt4 key购买 nike

我想创建一个仅在客户端发送特定 Accept 时才匹配的路由标题。我用喷雾 1.2-20130822 .

我想让路线工作:

def receive = runRoute {
get {
path("") {
accept("application/json") {
complete(...)
}
}
}
}

Here我找到了一个使用 accept() 的规范函数,但我无法弄清楚在我的 Spray-Handler 中导入什么以使其作为指令工作。另外,我没有找到关于 header 指令的其他文档,但这些 stubs .

最佳答案

我会这样做:

def acceptOnly(mr: MediaRange*): Directive0 =
extract(_.request.headers).flatMap[HNil] {
case headers if headers.contains(Accept(mr)) ⇒ pass
case _ ⇒ reject(MalformedHeaderRejection("Accept", s"Only the following media types are supported: ${mr.mkString(", ")}"))
} & cancelAllRejections(ofType[MalformedHeaderRejection])

然后只需包裹您的根:
path("") {
get {
acceptOnly(`application/json`) {
session { creds ⇒
complete(html.page(creds))
}
}
}
}

顺便说一下,最新的每晚喷雾 1.2 是 1.2-20130928如果可以,更新它

关于scala - 如何匹配路由中的特定接受 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19131488/

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