У меня есть сервер ktor, который предоставляет API моему клиенту android. У него есть собственная база данных, некоторая структура регистрации и все стандартные вещи. Но теперь часть моей базы данных заполняется данными из сторонней базы данных, которую я могу получить только через собственный 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 {
...
application.conf
ktor {
deployment {
port = 8080
port = ${?PORT}
}
application {
modules = [ com.kvw.letsgo.server.ApplicationKt.module ]
}
}
Должен ли я изменить свой main (), потерять application.conf и вручную закодировать его, чтобы использовать тот же движок?