Akka HTTP 中的一点复杂路径匹配
A little complex path matching in Akka HTTP
我是 Akka HTTP 的新手,正在尝试编写我的第一个 API。路由DSL似乎有点混乱。
我成功匹配了以下内容:
/频道
/频道/频道名称
但现在我需要匹配以下内容:
/channel/channelName/channelAction
我无法让它工作。
我目前有:
private val routes: Route =
path("channel") {
get {
reportAllChannelsStatus()
}
} ~
pathPrefix("channel" / Remaining) { channelName =>
get {
singleChannelRequest(channelName, status)
} ~
post {
entity(as[ChannelRequest]) { request =>
singleChannelRequest(channelName, request.channelAction)
}
}
} ~
completeWith404()
我想为 /channel/channelName/channelAction
添加 get 和 post
知道这是怎么做到的吗? (同时提取 channelName 和 channelAction)
你可以匹配
path("channel" / Segment / Segment){
(channelName, channelAction) => ...
}
请注意,对于不同类型的参数,您必须匹配不同的内容。 Segment
用于 String
,IntNumber
用于 Int
...
我是 Akka HTTP 的新手,正在尝试编写我的第一个 API。路由DSL似乎有点混乱。
我成功匹配了以下内容:
/频道 /频道/频道名称
但现在我需要匹配以下内容:
/channel/channelName/channelAction
我无法让它工作。
我目前有:
private val routes: Route =
path("channel") {
get {
reportAllChannelsStatus()
}
} ~
pathPrefix("channel" / Remaining) { channelName =>
get {
singleChannelRequest(channelName, status)
} ~
post {
entity(as[ChannelRequest]) { request =>
singleChannelRequest(channelName, request.channelAction)
}
}
} ~
completeWith404()
我想为 /channel/channelName/channelAction
添加 get 和 post知道这是怎么做到的吗? (同时提取 channelName 和 channelAction)
你可以匹配
path("channel" / Segment / Segment){
(channelName, channelAction) => ...
}
请注意,对于不同类型的参数,您必须匹配不同的内容。 Segment
用于 String
,IntNumber
用于 Int
...