Open
Description
HTTP Interfaces are great but it's impossible to replace pure RestClient calls in all cases.
For instance, code like
restClient.put()
.uri(...)
.body(body -> {
//use body as OutputStream
})
.retrieve()
.toBodilessEntity();
or
restClient.get()
.uri(...)
.exchange((req, resp) -> {
var inputStream = resp.getBody());
//use inputStream
});
cannot be replaced with HTTP Interface (as I know).
It causes minor inconvenience as HTTP Interface is used in 99% cases but RestClient is still injected to cover cases like download/upload large files without significant memory consumption and all other cases where Stream processing is needed.
Propose to add:
- OutputStream (or StreamingHttpOutputMessage.Body) as supported method parameter here https://docs.spring.io/spring-framework/reference/integration/rest-clients.html#rest-http-interface-method-parameters
- InputStream or (ResponseEntity?) as supported return value here https://docs.spring.io/spring-framework/reference/integration/rest-clients.html#rest-http-interface-return-values