Scalatra用于单操作的多个路由

Scalatra用于单操作的多个路由,scalatra,Scalatra,目前,我正在尝试在不破坏更改的情况下重构API。正在尝试将它从host:port/foo/bar迁移到host:port/bar,我想知道在Scalatra中,一个操作是否支持多个路由。我试着这样做: get("/foo/bar", "/bar") { Ok(200) } 它返回时在任一端点上都有一个空响应,响应代码为0,所以我有点困惑。Scalatra是否支持此功能 我知道在春天它看起来是这样的:但我很好奇Scalatra中是否有什么东西支持一个操作的多个转换器,但这意味着如果所有的转换

目前,我正在尝试在不破坏更改的情况下重构API。正在尝试将它从
host:port/foo/bar
迁移到
host:port/bar
,我想知道在Scalatra中,一个操作是否支持多个路由。我试着这样做:

get("/foo/bar", "/bar") {
 Ok(200) 
}
它返回时在任一端点上都有一个空响应,响应代码为0,所以我有点困惑。Scalatra是否支持此功能


我知道在春天它看起来是这样的:但我很好奇Scalatra中是否有什么东西支持一个操作的多个转换器,但这意味着如果所有的转换器都匹配,则调用中的操作。这用于向路由添加附加条件

在您的情况下,请求路径不能同时匹配
“/foo/bar”
“/bar”
,因此我猜该操作永远不会被调用

您可以按如下方式执行此操作:

get("/foo/bar"){
  bar()
}

get("/bar"){
  bar()
}

private def bar() = {
  Ok(200)
}
也可以使用正则表达式:

get("^(/bar)|(/foo/bar)$".r){
  Ok(200)
}

那个正则表达式正是我想要的,但我忽略了,谢谢