如何在 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 中调用内部端点?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ktor 内部检查 Netty 是不是实际启动?

在 SpringBoot 中调用类内部的端点 [重复]

如何保持 Kotlin Ktor websocket 处于打开状态

如何使用 React Hooks 和 Context API 正确地将来自 useEffect 内部调用的多个端点的数据添加到状态对象?

如何禁用 Ktor 客户端 SSL 验证?

如何在 Ktor (Kotlin) 中管道的各个部分之间传递数据