Scalatra 单一动作的多条路线
Scalatra multiple routes for single action
目前我正在尝试重构 API 而不破坏更改。试图将它从 host:port/foo/bar
之类的东西迁移到 host:port/bar
我想知道在 Scalatra 中单个操作是否支持多个路由。我正在尝试:
get("/foo/bar", "/bar") {
Ok(200)
}
它在任一端点返回空响应,响应代码为 0,所以我有点困惑。这在 Scalatra 中受支持吗?
我知道在 spring 中它看起来像: 但我很好奇 Scalatra 中是否有东西
Scalatra 支持一个动作使用多个转换器,但这意味着如果所有转换器都匹配则调用该动作。这用于为路由添加附加条件。
在您的情况下,请求路径无法同时匹配 "/foo/bar"
和 "/bar"
,因此我猜该操作从未被调用。
您可以按如下方式进行:
get("/foo/bar"){
bar()
}
get("/bar"){
bar()
}
private def bar() = {
Ok(200)
}
或者您可以使用正则表达式:
get("^(/bar)|(/foo/bar)$".r){
Ok(200)
}
目前我正在尝试重构 API 而不破坏更改。试图将它从 host:port/foo/bar
之类的东西迁移到 host:port/bar
我想知道在 Scalatra 中单个操作是否支持多个路由。我正在尝试:
get("/foo/bar", "/bar") {
Ok(200)
}
它在任一端点返回空响应,响应代码为 0,所以我有点困惑。这在 Scalatra 中受支持吗?
我知道在 spring 中它看起来像: 但我很好奇 Scalatra 中是否有东西
Scalatra 支持一个动作使用多个转换器,但这意味着如果所有转换器都匹配则调用该动作。这用于为路由添加附加条件。
在您的情况下,请求路径无法同时匹配 "/foo/bar"
和 "/bar"
,因此我猜该操作从未被调用。
您可以按如下方式进行:
get("/foo/bar"){
bar()
}
get("/bar"){
bar()
}
private def bar() = {
Ok(200)
}
或者您可以使用正则表达式:
get("^(/bar)|(/foo/bar)$".r){
Ok(200)
}