如何在 Ktor 中调用内部端点?

How to call an internal endpoint in Ktor?

我正在尝试弄清楚如何调用内部端点并在 Ktor 中获得响应。我看到了关于如何在内部重定向的帖子,但它们没有 return 响应。

例如。我有一个 returns foo 的获取请求。我还有一个get request,就是returns吧。我有一个应该 return foobar 的 getrequest。我可以自己调用这些端点,而不是重写 foo 和 bar 中的逻辑。

get("/foo") {
    call.respondText("foo") // except without relying on client to handle HTTP
}
get("/bar") {
    call.respondText("bar")
}
get("/foobar") {
    call.respondText(get("/foo") + get("/bar")) // returns foobar
}

你在这里要做的是将功能抽象成函数,然后调用这些函数。但是,我会保留对每个路由的请求和响应的处理。

get("/foo") {
    val result = functionHandlingFoo()
    // send out result here
}
get("/bar") {
    val result = functionHandlingBar()
    // send out result here
}
get("/foobar") {
    val resultFoo = functionHandlingFoo()
    val resultBar = functionHandlingBar()
    // process result and send out
}