[BUG][Kotlin][WebClient] ApiClient is not compatible with spring-web 6 Observation API (#21020)

This commit is contained in:
NavruzshoevDaniel
2025-04-16 10:25:22 +03:00
committed by GitHub
parent a94b8f90ca
commit 7a57b80955
4 changed files with 12 additions and 0 deletions

View File

@@ -10,6 +10,8 @@ import org.springframework.http.client.MultipartBodyBuilder
import org.springframework.util.LinkedMultiValueMap
import reactor.core.publisher.Mono
private val URI_TEMPLATE_ATTRIBUTE = WebClient::class.java.name + ".uriTemplate";
{{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}open class ApiClient(protected val client: WebClient) {
protected inline fun <reified I : Any, reified T: Any?> request(requestConfig: RequestConfig<I>): Mono<ResponseEntity<T>> {
@@ -39,6 +41,7 @@ import reactor.core.publisher.Mono
private fun <I> WebClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig<I>) =
uri { builder ->
attribute(URI_TEMPLATE_ATTRIBUTE, requestConfig.path)
builder
.path(requestConfig.path)
.queryParams(LinkedMultiValueMap(requestConfig.query))

View File

@@ -10,6 +10,8 @@ import org.springframework.http.client.MultipartBodyBuilder
import org.springframework.util.LinkedMultiValueMap
import reactor.core.publisher.Mono
private val URI_TEMPLATE_ATTRIBUTE = WebClient::class.java.name + ".uriTemplate";
open class ApiClient(protected val client: WebClient) {
protected inline fun <reified I : Any, reified T: Any?> request(requestConfig: RequestConfig<I>): Mono<ResponseEntity<T>> {
@@ -39,6 +41,7 @@ open class ApiClient(protected val client: WebClient) {
private fun <I> WebClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig<I>) =
uri { builder ->
attribute(URI_TEMPLATE_ATTRIBUTE, requestConfig.path)
builder
.path(requestConfig.path)
.queryParams(LinkedMultiValueMap(requestConfig.query))

View File

@@ -10,6 +10,8 @@ import org.springframework.http.client.MultipartBodyBuilder
import org.springframework.util.LinkedMultiValueMap
import reactor.core.publisher.Mono
private val URI_TEMPLATE_ATTRIBUTE = WebClient::class.java.name + ".uriTemplate";
open class ApiClient(protected val client: WebClient) {
protected inline fun <reified I : Any, reified T: Any?> request(requestConfig: RequestConfig<I>): Mono<ResponseEntity<T>> {
@@ -39,6 +41,7 @@ open class ApiClient(protected val client: WebClient) {
private fun <I> WebClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig<I>) =
uri { builder ->
attribute(URI_TEMPLATE_ATTRIBUTE, requestConfig.path)
builder
.path(requestConfig.path)
.queryParams(LinkedMultiValueMap(requestConfig.query))

View File

@@ -10,6 +10,8 @@ import org.springframework.http.client.MultipartBodyBuilder
import org.springframework.util.LinkedMultiValueMap
import reactor.core.publisher.Mono
private val URI_TEMPLATE_ATTRIBUTE = WebClient::class.java.name + ".uriTemplate";
open class ApiClient(protected val client: WebClient) {
protected inline fun <reified I : Any, reified T: Any?> request(requestConfig: RequestConfig<I>): Mono<ResponseEntity<T>> {
@@ -39,6 +41,7 @@ open class ApiClient(protected val client: WebClient) {
private fun <I> WebClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig<I>) =
uri { builder ->
attribute(URI_TEMPLATE_ATTRIBUTE, requestConfig.path)
builder
.path(requestConfig.path)
.queryParams(LinkedMultiValueMap(requestConfig.query))