public abstract class BodyExtractors
extends java.lang.Object
BodyExtractor
that read various bodies, such a reactive streams.Modifier and Type | Field and Description |
---|---|
private static ResolvableType |
FORM_MAP_TYPE |
private static ResolvableType |
MULTIPART_MAP_TYPE |
private static ResolvableType |
PART_TYPE |
private static ResolvableType |
VOID_TYPE |
Constructor and Description |
---|
BodyExtractors() |
Modifier and Type | Method and Description |
---|---|
private static <T> HttpMessageReader<T> |
cast(HttpMessageReader<?> messageReader) |
private static MediaType |
contentType(HttpMessage message) |
private static <T> HttpMessageReader<T> |
messageReader(ResolvableType elementType,
MediaType mediaType,
BodyExtractor.Context context) |
private static <T> <any> |
permitEmptyOrFail(ReactiveHttpInputMessage message,
UnsupportedMediaTypeException ex) |
private static <T,S extends <any>> |
readWithMessageReaders(ReactiveHttpInputMessage inputMessage,
BodyExtractor.Context context,
ResolvableType elementType,
java.util.function.Function<HttpMessageReader<T>,S> readerFunction,
java.util.function.Function<UnsupportedMediaTypeException,S> unsupportedError,
java.util.function.Supplier<S> empty) |
static BodyExtractor<<any>,ReactiveHttpInputMessage> |
toDataBuffers()
|
static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> |
toFlux(java.lang.Class<? extends T> elementClass)
Return a
BodyExtractor that reads into a Reactor Flux . |
static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> |
toFlux(ParameterizedTypeReference<T> typeReference)
Return a
BodyExtractor that reads into a Reactor Flux . |
(package private) static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> |
toFlux(ResolvableType elementType) |
static BodyExtractor<<any>,ServerHttpRequest> |
toFormData()
Return a
BodyExtractor that reads form data into a MultiValueMap . |
static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> |
toMono(java.lang.Class<? extends T> elementClass)
Return a
BodyExtractor that reads into a Reactor Mono . |
static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> |
toMono(ParameterizedTypeReference<T> typeReference)
Return a
BodyExtractor that reads into a Reactor Mono . |
(package private) static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> |
toMono(ResolvableType elementType) |
static BodyExtractor<<any>,ServerHttpRequest> |
toMultipartData()
Return a
BodyExtractor that reads multipart (i.e. |
static BodyExtractor<<any>,ServerHttpRequest> |
toParts()
Return a
BodyExtractor that reads multipart (i.e. |
private static final ResolvableType FORM_MAP_TYPE
private static final ResolvableType MULTIPART_MAP_TYPE
private static final ResolvableType PART_TYPE
private static final ResolvableType VOID_TYPE
public static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> toMono(java.lang.Class<? extends T> elementClass)
BodyExtractor
that reads into a Reactor Mono
.T
- the element typeelementClass
- the class of element in the Mono
BodyExtractor
that reads a monopublic static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> toMono(ParameterizedTypeReference<T> typeReference)
BodyExtractor
that reads into a Reactor Mono
.
The given ParameterizedTypeReference
is used to pass generic type information, for
instance when using the WebClient
Mono<Map<String, String>> body = this.webClient .get() .uri("http://example.com") .exchange() .flatMap(r -> r.body(toMono(new ParameterizedTypeReference<Map<String,String>>() {})));
T
- the element typetypeReference
- a reference to the type of element in the Mono
BodyExtractor
that reads a monostatic <T> BodyExtractor<<any>,ReactiveHttpInputMessage> toMono(ResolvableType elementType)
public static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> toFlux(java.lang.Class<? extends T> elementClass)
BodyExtractor
that reads into a Reactor Flux
.T
- the element typeelementClass
- the class of element in the Flux
BodyExtractor
that reads a fluxpublic static <T> BodyExtractor<<any>,ReactiveHttpInputMessage> toFlux(ParameterizedTypeReference<T> typeReference)
BodyExtractor
that reads into a Reactor Flux
.
The given ParameterizedTypeReference
is used to pass generic type information, for
instance when using the WebClient
Flux<ServerSentEvent<String>> body = this.webClient .get() .uri("http://example.com") .exchange() .flatMap(r -> r.body(toFlux(new ParameterizedTypeReference<ServerSentEvent<String>>() {})));
T
- the element typetypeReference
- a reference to the type of element in the Flux
BodyExtractor
that reads a fluxstatic <T> BodyExtractor<<any>,ReactiveHttpInputMessage> toFlux(ResolvableType elementType)
private static <T> <any> permitEmptyOrFail(ReactiveHttpInputMessage message, UnsupportedMediaTypeException ex)
public static BodyExtractor<<any>,ServerHttpRequest> toFormData()
BodyExtractor
that reads form data into a MultiValueMap
.BodyExtractor
that reads form datapublic static BodyExtractor<<any>,ServerHttpRequest> toMultipartData()
BodyExtractor
that reads multipart (i.e. file upload) form data into a
MultiValueMap
.BodyExtractor
that reads multipart datapublic static BodyExtractor<<any>,ServerHttpRequest> toParts()
BodyExtractor
that reads multipart (i.e. file upload) form data into a
MultiValueMap
.BodyExtractor
that reads multipart datapublic static BodyExtractor<<any>,ReactiveHttpInputMessage> toDataBuffers()
BodyExtractor
that returns the body of the message as a Flux
of
DataBuffer
s.
Note that the returned buffers should be released after usage by calling
DataBufferUtils.release(DataBuffer)
BodyExtractor
that returns the bodyReactiveHttpInputMessage.getBody()
private static <T,S extends <any>> S readWithMessageReaders(ReactiveHttpInputMessage inputMessage, BodyExtractor.Context context, ResolvableType elementType, java.util.function.Function<HttpMessageReader<T>,S> readerFunction, java.util.function.Function<UnsupportedMediaTypeException,S> unsupportedError, java.util.function.Supplier<S> empty)
private static <T> HttpMessageReader<T> messageReader(ResolvableType elementType, MediaType mediaType, BodyExtractor.Context context)
private static MediaType contentType(HttpMessage message)
private static <T> HttpMessageReader<T> cast(HttpMessageReader<?> messageReader)