Scalatra多个单一动作路线



目前,我正在尝试重构API而不会破坏更改。试图将其从host:port/foo/bar之类的东西迁移到host:port/bar,并想知道在Scalatra中是否支持多个路线。我正在尝试:

get("/foo/bar", "/bar") {
 Ok(200) 
}

在任一端点上以空的响应代码为0,它的返回,我有点困惑。这是在Scalatra中支持的吗?

我知道在春季,它看起来像:https://stackoverflow.com/a/5517486/4682816,但是我很好奇是否有scalatra

scalatra为动作提供多个变压器,但这意味着如果所有变压器都匹配了调用的操作。这用于在路由中添加其他条件。

在您的情况下,请求路径不能匹配"/foo/bar""/bar",所以我想该动作从未被调用。

您可以按照以下方式进行操作:

get("/foo/bar"){
  bar()
}
get("/bar"){
  bar()
}
private def bar() = {
  Ok(200)
}

或您可以使用正则表达式:

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

相关内容

最新更新