Как подключиться к внешнему API на сервере Ktor - PullRequest
1 голос
/ 12 марта 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...