Kotlin Multiplatform Mobile, Ktor, Koin

Разбираюсь с kmm + ktor + koin, Вопрос в следующем: Насколько правильно описывать такие методы post и get. Хочу попытаться добиться приблеженной работы, как с retrofit, например, если я создаю метод в LoginApi(класс который отвечает за авторизацию), то мне просто надо описать что принимает метод, что возвращает и вызвать функцию post или get в ApiService (ApiService получаю с помощью Koin). Хороших примеров в сети не нашел, везде какие-то обрывки кода

class ApiService {
val httpClient = HttpClient {
    defaultRequest {
        url(ApiValues.baseUrl)
        contentType(ContentType.Application.Json)
        accept(ContentType.Application.Json)
    }
    install(ContentNegotiation) {
        json()
    }
}


suspend inline fun <reified T, reified R> post(requestBody: T, path: String): R =
    httpClient.post {
        url(path)
        setBody(requestBody)
    }.body()

suspend inline fun <reified R> get(parameters : Map<String,Any?>,path: String): R =
    httpClient.get {
        url(path)
        parameters.map {
            parameter(it.key,it.value)
        }
    }.body()

}


Ответы (0 шт):