KTor URLBuilder encodedPath с динамическим путем - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь построить сетевой модуль для мультиплатформенного проекта с ktor.Мой код для запроса GET выглядит примерно так:

val result = httpClient.get<HttpResponse> {
                    url {
                        protocol = baseProtocol
                        host = baseUrl
                        encodedPath = urlPath

                    }
}

В какой-то момент мой путь содержит идентификатор пользователя, подобный этому /users/{user_id}.Я могу сделать поиск и заменить в строке и заменить это user_id на фактическое значение, НО есть ли другой способ сделать это?любой ktor конкретный способ.

Например, с Retrofit мы имеем это:

@GET("users/{user_id}/")
SomeData getUserData(@Path("user_id") String userId);

РЕДАКТИРОВАТЬ: добавление дополнительного кода

val result = httpClient.get<HttpResponse> {
                    url {
                        protocol = baseProtocol
                        host = baseUrl

                        var requestPath = request.requestPath.value
                        request.path?.forEach {
                            requestPath = requestPath.replace(it.first, it.second)
                        }
                        encodedPath = requestPath

                        if (request.parameters != null) {
                            parameters.appendAll(getParametersFromList(request.parameters))
                        }
                    }

request.path?.forEach { requestPath = requestPath.replace(it.first, it.second)}замена любого значения пути времени выполнения.

...