我有一个 ktor 服务器,它向我的 android 客户端公开一个 API。它有自己的数据库、一些注册结构和所有标准的东西。但是现在,我的数据库的一部分正在填充来自 3rd 方数据库的数据,我只能通过它自己的 API 访问这些数据。这意味着我的服务器本身就是一个客户端。我知道这可能不是最好的结构,但现在就是这样。所以我认为我的服务器需要一个 HTTPClient。为此,我需要使用一个引擎,但我应该使用与我用于服务器的引擎相同的引擎吗?如何在我的 DI Koin 中设置它,以便我的服务可以访问 HTTPClient(工厂或单一)现在我像这样设置服务器部分:
fun main(args: Array<String>): Unit = io.ktor.server.netty.EngineMain.main(args)
@Suppress("unused") // Referenced in application.conf
@kotlin.jvm.JvmOverloads
fun Application.module(testing: Boolean = false) {
install(ContentNegotiation) {
serialization()
}
install(Koin) {
modules(
KoinModules.exposedModule,
KoinModules.repositoryModule
)
}
val userRepository by inject<UserRepository>()
routing {
...
应用程序.conf
ktor {
deployment {
port = 8080
port = ${?PORT}
}
application {
modules = [ com.kvw.letsgo.server.ApplicationKt.module ]
}
}
我应该更改我的 main()、丢失 application.conf 并手动编写代码以便使用相同的引擎吗?