Как подключиться к внешнему API на сервере ktor
У меня есть сервер 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 и закодировать его вручную, чтобы использовать тот же движок?