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