我可以使用以下方法訪問電路板路線:
wget http://127.0.0.1:9000/board
現在,如果我嘗試像這樣訪問我的會話路由:
wget http://127.0.0.1:9000/session/getByToken
我收到此錯誤:
--2021-11-30 11:56:12-- http://localhost:9000/session/getByToken 決議 localhost (localhost)... 127.0.0.1 連接到 localhost (localhost)|127.0.0.1|:9000。 .. 連接的。HTTP 請求已發送,正在等待回應... 404 未找到 2021-11-30 11:56:12 錯誤 404:未找到。
我的路由配置有什么問題?
另外,我希望路線最終像這樣被呼叫:
wget http://127.0.0.1:9000/session/getByToken/abc123abc123abc1234
我怎樣才能在getByToken路由上獲取一個字串引數?
val boardRoutes =
path("board") {
get {
complete("board#index route")
}
}
val sessionRoutes =
concat(
path("session") {
path("getByToken") {
get {
complete("session#load route TODO add param for tokenId")
}
}
path("login") {
post {
complete("session#login route")
}
}
path("logout") {
delete {
complete("session#login route")
}
}
}
)
val routes = chatRoute ~ boardRoutes ~ sessionRoutes
uj5u.com熱心網友回復:
一個path嘗試,以配合完成其余的路徑和嵌套的路徑將被忽略。相反,您需要pathPrefix作為最外層指令。Remaining提取可用于匹配 tokenId 的其余路徑。
pathPrefix("session") {
path("getByToken" / Remaining) { tokenId =>
get {
complete("session#load route TODO add param for " tokenId)
}
} ~
path("login") {
post {
complete("session#login route")
}
} ~
path("logout") {
delete {
complete("session#login route")
}
}
}
此外,concat使用 a 鏈接指令foldLeft,因此可以這樣使用:
pathPrefix("session") {
concat(
path("getByToken" / Remaining) { tokenId =>
get {
complete("session#load route TODO add param for " tokenId)
}
},
path("login") {
post {
complete("session#login route")
}
},
path("logout") {
delete {
complete("session#login route")
}
}
)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/372707.html
下一篇:提取器不回傳例外
