Browse Source

Update API versioning ref docs for client side

Closes: gh-34569
pull/34900/head
rstoyanchev 7 months ago
parent
commit
e04de95ef2
  1. 8
      framework-docs/modules/ROOT/pages/integration/rest-clients.adoc
  2. 2
      framework-docs/modules/ROOT/pages/testing/webtestclient.adoc
  3. 5
      framework-docs/modules/ROOT/pages/web/webflux-versioning.adoc
  4. 4
      framework-docs/modules/ROOT/pages/web/webflux-webclient/client-builder.adoc
  5. 4
      framework-docs/modules/ROOT/pages/web/webmvc-versioning.adoc

8
framework-docs/modules/ROOT/pages/integration/rest-clients.adoc

@ -23,7 +23,8 @@ It also exposes a `builder()` with further options: @@ -23,7 +23,8 @@ It also exposes a `builder()` with further options:
- select the HTTP library to use, see <<rest-request-factories>>
- configure message converters, see <<rest-message-conversion>>
- set a baseUrl
- set default request headers, cookies, path variables
- set default request headers, cookies, path variables, API version
- configure an `ApiVersionInserter`
- register interceptors
- register request initializers
@ -46,6 +47,8 @@ Java:: @@ -46,6 +47,8 @@ Java::
.defaultUriVariables(Map.of("variable", "foo"))
.defaultHeader("My-Header", "Foo")
.defaultCookie("My-Cookie", "Bar")
.defaultVersion("1.2")
.apiVersionInserter(ApiVersionInserter.fromHeader("API-Version").build())
.requestInterceptor(myCustomInterceptor)
.requestInitializer(myCustomInitializer)
.build();
@ -64,6 +67,8 @@ Kotlin:: @@ -64,6 +67,8 @@ Kotlin::
.defaultUriVariables(mapOf("variable" to "foo"))
.defaultHeader("My-Header", "Foo")
.defaultCookie("My-Cookie", "Bar")
.defaultVersion("1.2")
.apiVersionInserter(ApiVersionInserter.fromHeader("API-Version").build())
.requestInterceptor(myCustomInterceptor)
.requestInitializer(myCustomInitializer)
.build()
@ -115,6 +120,7 @@ For more details on working with and encoding URIs, see xref:web/webmvc/mvc-uri- @@ -115,6 +120,7 @@ For more details on working with and encoding URIs, see xref:web/webmvc/mvc-uri-
If necessary, the HTTP request can be manipulated by adding request headers with `header(String, String)`, `headers(Consumer<HttpHeaders>`, or with the convenience methods `accept(MediaType...)`, `acceptCharset(Charset...)` and so on.
For HTTP requests that can contain a body (`POST`, `PUT`, and `PATCH`), additional methods are available: `contentType(MediaType)`, and `contentLength(long)`.
You can set an API version for the request if the client is configured with `ApiVersionInserter`.
The request body itself can be set by `body(Object)`, which internally uses <<rest-message-conversion>>.
Alternatively, the request body can be set using a `ParameterizedTypeReference`, allowing you to use generics.

2
framework-docs/modules/ROOT/pages/testing/webtestclient.adoc

@ -265,6 +265,7 @@ Java:: @@ -265,6 +265,7 @@ Java::
client = WebTestClient.bindToController(new TestController())
.configureClient()
.baseUrl("/test")
.apiVersionInserter(ApiVersionInserter.fromHeader("API-Version").build())
.build();
----
@ -275,6 +276,7 @@ Kotlin:: @@ -275,6 +276,7 @@ Kotlin::
client = WebTestClient.bindToController(TestController())
.configureClient()
.baseUrl("/test")
.apiVersionInserter(ApiVersionInserter.fromHeader("API-Version").build())
.build()
----
======

5
framework-docs/modules/ROOT/pages/web/webflux-versioning.adoc

@ -13,6 +13,11 @@ Please, see also related content in: @@ -13,6 +13,11 @@ Please, see also related content in:
to map requests to annotated controller methods
- Configure API versioning in xref:web/webflux/config.adoc#webflux-config-api-version[WebFlux Config]
TIP: API versioning is also supported on the client side in `RestClient`, `WebClient`, and
xref:integration/rest-clients.adoc#rest-http-interface[HTTP Service] clients, as well as
for testing with `WebTestClient`.
[[webflux-versioning-strategy]]

4
framework-docs/modules/ROOT/pages/web/webflux-webclient/client-builder.adoc

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
[[webflux-client-builder]]
= Configuration
The simplest way to create a `WebClient` is through one of the static factory methods:
The simplest way to create `WebClient` is through one of the static factory methods:
* `WebClient.create()`
* `WebClient.create(String baseUrl)`
@ -12,10 +12,12 @@ You can also use `WebClient.builder()` with further options: @@ -12,10 +12,12 @@ You can also use `WebClient.builder()` with further options:
* `defaultUriVariables`: default values to use when expanding URI templates.
* `defaultHeader`: Headers for every request.
* `defaultCookie`: Cookies for every request.
* `defaultApiVersion`: API version for every request.
* `defaultRequest`: `Consumer` to customize every request.
* `filter`: Client filter for every request.
* `exchangeStrategies`: HTTP message reader/writer customizations.
* `clientConnector`: HTTP client library settings.
* `apiVersionInserter`: to insert API version values in the request
* `observationRegistry`: the registry to use for enabling xref:integration/observability.adoc#http-client.webclient[Observability support].
* `observationConvention`: xref:integration/observability.adoc#config[an optional, custom convention to extract metadata] for recorded observations.

4
framework-docs/modules/ROOT/pages/web/webmvc-versioning.adoc

@ -13,6 +13,10 @@ Please, see also related content in: @@ -13,6 +13,10 @@ Please, see also related content in:
to map requests to annotated controller methods
- Configure API versioning in xref:web/webmvc/mvc-config/api-version.adoc[MVC Config]
TIP: API versioning is also supported on the client side in `RestClient`, `WebClient`, and
xref:integration/rest-clients.adoc#rest-http-interface[HTTP Service] clients, as well as
for testing with `WebTestClient`.

Loading…
Cancel
Save