Ktor 框架是否提供了一种在请求中访问路由路径字符串的方法?
例如,如果我设置一条路线,例如:
routing {
get("/user/{user_id}") {
// possible to get the string "/user/{user_id}" here?
val path = someFunction()
assert(path == "/user/{user_id}")
}
}
Run Code Online (Sandbox Code Playgroud)
为了澄清,我正在寻找一种访问未处理的路径字符串的方法,即"/user/{user_id}"在这种情况下(通过访问路径为我提供了填充后call.request.path()的路径,例如)。{user_id}"/user/123"
我当然可以将路径分配给变量并将其传递给两者get并在函数体内使用它,但想知道是否有一种方法可以在不这样做的情况下获取路线的路径。
我认为这是不可能的。你可以做的是编写这样一个类/对象
object UserRoutes {
const val userDetails = "/users/{user_id}"
...
}
Run Code Online (Sandbox Code Playgroud)
并从路由模块引用该字段:
import package.UserRoutes
get(UserRoutes.userDetails) {...}
Run Code Online (Sandbox Code Playgroud)
通过这样做,您只需要从给定的单例中引用该字符串。也不需要包装器,但我认为你可以按模块名称object对路径进行分组,这看起来很不错
| 归档时间: |
|
| 查看次数: |
3319 次 |
| 最近记录: |