Top Description Fields Constructors Methods
org.springframework.web.reactive.function

public abstract Class BodyExtractors

extends Object
Class Inheritance
Imports
java.util.List, .Optional, java.util.function.Function, .Supplier, org.reactivestreams.Publisher, reactor.core.publisher.Flux, .Mono, org.springframework.core.ParameterizedTypeReference, .ResolvableType, org.springframework.core.io.buffer.DataBuffer, .DataBufferUtils, org.springframework.http.MediaType, .ReactiveHttpInputMessage, org.springframework.http.client.reactive.ClientHttpResponse, org.springframework.http.codec.HttpMessageReader, org.springframework.http.codec.multipart.Part, org.springframework.http.server.reactive.ServerHttpRequest, org.springframework.util.MultiValueMap

Static factory methods for BodyExtractor implementations.
Authors
Arjen Poutsma, Sebastien Deleuze, Rossen Stoyanchev, Brian Clozel
Since
5.0

Field Summary

Modifier and TypeField and Description
private static final ResolvableType
private static final ResolvableType
private static final ResolvableType
private static final ResolvableType

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static <T> HttpMessageReader<T>
private static Flux<DataBuffer>
private static <T> HttpMessageReader<T>
findReader(ResolvableType elementType, MediaType mediaType, BodyExtractor.Context context)

private static <T> Flux<T>
private static <T> Mono<T>
private static <T, S extends Publisher<T>> S
readWithMessageReaders(ReactiveHttpInputMessage message, BodyExtractor.Context context, ResolvableType elementType, Function<HttpMessageReader<T>, S> readerFunction, Function<UnsupportedMediaTypeException, S> errorFunction, Supplier<S> emptySupplier)

private static <T> Supplier<Flux<T>>
private static <T> Supplier<Mono<T>>
public static BodyExtractor<Flux<DataBuffer>, ReactiveHttpInputMessage>

Returns:

BodyExtractor for data buffers
toDataBuffers
()

Extractor that returns the raw DataBuffers.

public static <
the element type to decode to
T
>
BodyExtractor<Flux<T>, ReactiveHttpInputMessage>

Returns:

BodyExtractor for Flux<T>
toFlux
(Class<? extends T>
the class of the element type to decode to
elementClass
)

Extractor to decode the input content into Flux<T>.

public static <
the element type to decode to
T
>
BodyExtractor<Flux<T>, ReactiveHttpInputMessage>

Returns:

BodyExtractor for Flux<T>
toFlux
(ParameterizedTypeReference<T>
the type reference for the type to decode to
typeRef
)

Variant of toFlux(Class) for type information with generics.

private static <T> BodyExtractor<Flux<T>, ReactiveHttpInputMessage>
toFlux(ResolvableType elementType)

public static BodyExtractor<Mono<MultiValueMap<String, String>>, ReactiveHttpInputMessage>

Returns:

BodyExtractor for form data
toFormData
()

Extractor to read form data into MultiValueMap<String, String>.

public static <
the element type to decode to
T
>
BodyExtractor<Mono<T>, ReactiveHttpInputMessage>

Returns:

BodyExtractor for Mono<T>
toMono
(Class<? extends T>
the class of the element type to decode to
elementClass
)

Extractor to decode the input content into Mono<T>.

public static <
the element type to decode to
T
>
BodyExtractor<Mono<T>, ReactiveHttpInputMessage>

Returns:

BodyExtractor for Mono<T>
toMono
(ParameterizedTypeReference<T>
the type reference for the type to decode to
elementTypeRef
)

Variant of toMono(Class) for type information with generics.

private static <T> BodyExtractor<Mono<T>, ReactiveHttpInputMessage>
toMono(ResolvableType elementType)

public static BodyExtractor<Mono<MultiValueMap<String, Part>>, ServerHttpRequest>

Returns:

BodyExtractor for multipart data
toMultipartData
()

Extractor to read multipart data into a MultiValueMap<String, Part>.

public static BodyExtractor<Flux<Part>, ServerHttpRequest>

Returns:

BodyExtractor for multipart request parts
toParts
()

Extractor to read multipart data into Flux<Part>.

private static <T> Flux<T>
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

FORM_DATA_TYPEback to summary
private static final ResolvableType FORM_DATA_TYPE
MULTIPART_DATA_TYPEback to summary
private static final ResolvableType MULTIPART_DATA_TYPE
PART_TYPEback to summary
private static final ResolvableType PART_TYPE
VOID_TYPEback to summary
private static final ResolvableType VOID_TYPE

Constructor Detail

BodyExtractorsback to summary
public BodyExtractors()

Method Detail

castback to summary
private static <T> HttpMessageReader<T> cast(HttpMessageReader<?> reader)
Annotations
@SuppressWarnings:unchecked
consumeAndCancelback to summary
private static Flux<DataBuffer> consumeAndCancel(ReactiveHttpInputMessage message)
findReaderback to summary
private static <T> HttpMessageReader<T> findReader(ResolvableType elementType, MediaType mediaType, BodyExtractor.Context context)
readToFluxback to summary
private static <T> Flux<T> readToFlux(ReactiveHttpInputMessage message, BodyExtractor.Context context, ResolvableType type, HttpMessageReader<T> reader)
readToMonoback to summary
private static <T> Mono<T> readToMono(ReactiveHttpInputMessage message, BodyExtractor.Context context, ResolvableType type, HttpMessageReader<T> reader)
readWithMessageReadersback to summary
private static <T, S extends Publisher<T>> S readWithMessageReaders(ReactiveHttpInputMessage message, BodyExtractor.Context context, ResolvableType elementType, Function<HttpMessageReader<T>, S> readerFunction, Function<UnsupportedMediaTypeException, S> errorFunction, Supplier<S> emptySupplier)
skipBodyAsFluxback to summary
private static <T> Supplier<Flux<T>> skipBodyAsFlux(ReactiveHttpInputMessage message)
skipBodyAsMonoback to summary
private static <T> Supplier<Mono<T>> skipBodyAsMono(ReactiveHttpInputMessage message)
Annotations
@SuppressWarnings:unchecked
toDataBuffersback to summary
public static BodyExtractor<Flux<DataBuffer>, ReactiveHttpInputMessage> toDataBuffers()

Extractor that returns the raw DataBuffers.

Note

the data buffers should be released after being used.

Returns:BodyExtractor<Flux<DataBuffer>, ReactiveHttpInputMessage>

BodyExtractor for data buffers

toFluxback to summary
public static <T> BodyExtractor<Flux<T>, ReactiveHttpInputMessage> toFlux(Class<? extends T> elementClass)

Extractor to decode the input content into Flux<T>.

Parameters
<T>
the element type to decode to
elementClass:Class<? extends T>

the class of the element type to decode to

Returns:BodyExtractor<Flux<T>, ReactiveHttpInputMessage>

BodyExtractor for Flux<T>

toFluxback to summary
public static <T> BodyExtractor<Flux<T>, ReactiveHttpInputMessage> toFlux(ParameterizedTypeReference<T> typeRef)

Variant of toFlux(Class) for type information with generics.

Parameters
<T>
the element type to decode to
typeRef:ParameterizedTypeReference<T>

the type reference for the type to decode to

Returns:BodyExtractor<Flux<T>, ReactiveHttpInputMessage>

BodyExtractor for Flux<T>

toFluxback to summary
private static <T> BodyExtractor<Flux<T>, ReactiveHttpInputMessage> toFlux(ResolvableType elementType)
Annotations
@SuppressWarnings:unchecked
toFormDataback to summary
public static BodyExtractor<Mono<MultiValueMap<String, String>>, ReactiveHttpInputMessage> toFormData()

Extractor to read form data into MultiValueMap<String, String>.

As of 5.1 this method can also be used on the client side to read form data from a server response (e.g. OAuth).

Returns:BodyExtractor<Mono<MultiValueMap<String, String>>, ReactiveHttpInputMessage>

BodyExtractor for form data

toMonoback to summary
public static <T> BodyExtractor<Mono<T>, ReactiveHttpInputMessage> toMono(Class<? extends T> elementClass)

Extractor to decode the input content into Mono<T>.

Parameters
<T>
the element type to decode to
elementClass:Class<? extends T>

the class of the element type to decode to

Returns:BodyExtractor<Mono<T>, ReactiveHttpInputMessage>

BodyExtractor for Mono<T>

toMonoback to summary
public static <T> BodyExtractor<Mono<T>, ReactiveHttpInputMessage> toMono(ParameterizedTypeReference<T> elementTypeRef)

Variant of toMono(Class) for type information with generics.

Parameters
<T>
the element type to decode to
elementTypeRef:ParameterizedTypeReference<T>

the type reference for the type to decode to

Returns:BodyExtractor<Mono<T>, ReactiveHttpInputMessage>

BodyExtractor for Mono<T>

toMonoback to summary
private static <T> BodyExtractor<Mono<T>, ReactiveHttpInputMessage> toMono(ResolvableType elementType)
toMultipartDataback to summary
public static BodyExtractor<Mono<MultiValueMap<String, Part>>, ServerHttpRequest> toMultipartData()

Extractor to read multipart data into a MultiValueMap<String, Part>.

Note

that resources used for part handling, like storage for the uploaded files, is not deleted automatically, but should be done via Part#delete().

Returns:BodyExtractor<Mono<MultiValueMap<String, Part>>, ServerHttpRequest>

BodyExtractor for multipart data

toPartsback to summary
public static BodyExtractor<Flux<Part>, ServerHttpRequest> toParts()

Extractor to read multipart data into Flux<Part>.

Note

that resources used for part handling, like storage for the uploaded files, is not deleted automatically, but should be done via Part#delete().

Returns:BodyExtractor<Flux<Part>, ServerHttpRequest>

BodyExtractor for multipart request parts

unsupportedErrorHandlerback to summary
private static <T> Flux<T> unsupportedErrorHandler(ReactiveHttpInputMessage message, UnsupportedMediaTypeException ex)