如何在 Ktor 中调用内部端点?
Posted
技术标签:
【中文标题】如何在 Ktor 中调用内部端点?【英文标题】:How to call an internal endpoint in Ktor? 【发布时间】:2021-05-31 13:43:02 【问题描述】:我试图弄清楚如何调用内部端点并在 Ktor 中获得响应。我看到了有关如何在内部重定向的帖子,但它们没有返回响应。
例如。我有一个返回 foo 的获取请求。我有另一个返回 bar 的 get 请求。我有一个应该返回 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
【问题讨论】:
【参考方案1】:您在这里要做的是将功能抽象为函数,然后调用这些函数。但是,我会根据每条路由单独处理请求和响应。
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
【讨论】:
以上是关于如何在 Ktor 中调用内部端点?的主要内容,如果未能解决你的问题,请参考以下文章
如何保持 Kotlin Ktor websocket 处于打开状态
如何使用 React Hooks 和 Context API 正确地将来自 useEffect 内部调用的多个端点的数据添加到状态对象?