From bbc0b4a79f3c0b9a1bdb0ddf73ba8cd58c335832 Mon Sep 17 00:00:00 2001 From: paul-kraftlauget <94446221+paul-kraftlauget@users.noreply.github.com> Date: Sat, 26 Apr 2025 16:20:16 +0200 Subject: [PATCH] [kotlin-client][jvm-spring-restclient] Fix metrics URI templating for RestClient (#21149) Spring configures uriTemplate attribute and not generated code --- .../infrastructure/ApiClient.kt.mustache | 4 ++-- .../org/openapitools/client/infrastructure/ApiClient.kt | 4 ++-- .../org/openapitools/client/infrastructure/ApiClient.kt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/infrastructure/ApiClient.kt.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/infrastructure/ApiClient.kt.mustache index ec9ac2f6f2e..b35a15f2a74 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/infrastructure/ApiClient.kt.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/infrastructure/ApiClient.kt.mustache @@ -36,9 +36,8 @@ import org.springframework.util.LinkedMultiValueMap method(HttpMethod.valueOf(requestConfig.method.name)) private fun RestClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig) = - uri { builder -> + uri(requestConfig.path) { builder -> builder - .path(requestConfig.path) .queryParams(LinkedMultiValueMap(requestConfig.query)) .build(requestConfig.params) } @@ -50,6 +49,7 @@ import org.springframework.util.LinkedMultiValueMap when { requestConfig.headers[HttpHeaders.CONTENT_TYPE] == MediaType.MULTIPART_FORM_DATA_VALUE -> { val parts = LinkedMultiValueMap() + @Suppress("UNCHECKED_CAST") (requestConfig.body as Map>).forEach { (name, part) -> if (part.body != null) { parts.add(name, part.body) diff --git a/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt b/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt index 426ad04918f..b1675a9ff64 100644 --- a/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt +++ b/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt @@ -36,9 +36,8 @@ open class ApiClient(protected val client: RestClient) { method(HttpMethod.valueOf(requestConfig.method.name)) private fun RestClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig) = - uri { builder -> + uri(requestConfig.path) { builder -> builder - .path(requestConfig.path) .queryParams(LinkedMultiValueMap(requestConfig.query)) .build(requestConfig.params) } @@ -50,6 +49,7 @@ open class ApiClient(protected val client: RestClient) { when { requestConfig.headers[HttpHeaders.CONTENT_TYPE] == MediaType.MULTIPART_FORM_DATA_VALUE -> { val parts = LinkedMultiValueMap() + @Suppress("UNCHECKED_CAST") (requestConfig.body as Map>).forEach { (name, part) -> if (part.body != null) { parts.add(name, part.body) diff --git a/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt b/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt index 426ad04918f..b1675a9ff64 100644 --- a/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt +++ b/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt @@ -36,9 +36,8 @@ open class ApiClient(protected val client: RestClient) { method(HttpMethod.valueOf(requestConfig.method.name)) private fun RestClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig) = - uri { builder -> + uri(requestConfig.path) { builder -> builder - .path(requestConfig.path) .queryParams(LinkedMultiValueMap(requestConfig.query)) .build(requestConfig.params) } @@ -50,6 +49,7 @@ open class ApiClient(protected val client: RestClient) { when { requestConfig.headers[HttpHeaders.CONTENT_TYPE] == MediaType.MULTIPART_FORM_DATA_VALUE -> { val parts = LinkedMultiValueMap() + @Suppress("UNCHECKED_CAST") (requestConfig.body as Map>).forEach { (name, part) -> if (part.body != null) { parts.add(name, part.body)