DefaultWebClient exposes full URI template as request attribute

Closes gh-30027
This commit is contained in:
Rossen Stoyanchev
2023-12-06 10:16:16 +00:00
committed by rstoyanchev
parent dd23b1d156
commit 2e07f9ab33
6 changed files with 31 additions and 7 deletions

View File

@@ -226,8 +226,9 @@ final class DefaultWebClient implements WebClient {
@Override
public RequestBodySpec uri(String uriTemplate, Object... uriVariables) {
attribute(URI_TEMPLATE_ATTRIBUTE, uriTemplate);
return uri(uriBuilderFactory.expand(uriTemplate, uriVariables));
UriBuilder uriBuilder = uriBuilderFactory.uriString(uriTemplate);
attribute(URI_TEMPLATE_ATTRIBUTE, uriBuilder.toUriString());
return uri(uriBuilder.build(uriVariables));
}
@Override

View File

@@ -82,7 +82,7 @@ class WebClientObservationTests {
ClientRequest clientRequest = verifyAndGetRequest();
assertThatHttpObservation().hasLowCardinalityKeyValue("outcome", "SUCCESS")
.hasLowCardinalityKeyValue("uri", "/resource/{id}");
.hasLowCardinalityKeyValue("uri", "/base/resource/{id}");
assertThat(clientRequest.headers()).containsEntry("foo", Collections.singletonList("bar"));
}