Я пытаюсь построить сетевой модуль для мультиплатформенного проекта с 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)}
замена любого значения пути времени выполнения.