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

0 ответов

Другие вопросы по тегам