org.springframework.web.reactive.function.client

## Interface ExchangeFilterFunction

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface ExchangeFilterFunction

Represents a function that filters an exchange function.

The filter is executed when a `Subscriber` subscribes to the `Publisher` returned by the `WebClient`.

Since:
  5.0
Author:
  Arjen Poutsma

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Default Methods
`default ExchangeFilterFunction` `andThen(ExchangeFilterFunction afterFilter)` Return a composed filter function that first applies this filter, and then applies the given `"after"` filter.
`default ExchangeFunction` `apply(ExchangeFunction exchange)` Apply this filter to the given ExchangeFunction, resulting in a filtered exchange function.
`reactor.core.publisher.Mono<ClientResponse>` `filter(ClientRequest request, ExchangeFunction next)` Apply this filter to the given request and exchange function.
`static ExchangeFilterFunction` `ofRequestProcessor(Function<ClientRequest,reactor.core.publisher.Mono<ClientRequest>> processor)` Adapt the given request processor function to a filter function that only operates on the `ClientRequest`.
`static ExchangeFilterFunction` `ofResponseProcessor(Function<ClientResponse,reactor.core.publisher.Mono<ClientResponse>> processor)` Adapt the given response processor function to a filter function that only operates on the `ClientResponse`.

### Method Detail

#### filter

    reactor.core.publisher.Mono<ClientResponse> filter(ClientRequest request,
                                                       ExchangeFunction next)

Apply this filter to the given request and exchange function.

The given ExchangeFunction represents the next entity in the chain, to be invoked via invoked in order to proceed with the exchange, or not invoked to shortcut the chain.

Parameters:
  `request` - the current request
  `next` - the next exchange function in the chain
Returns:
  the filtered response

#### andThen

    default ExchangeFilterFunction andThen(ExchangeFilterFunction afterFilter)

Return a composed filter function that first applies this filter, and then applies the given `"after"` filter.

Parameters:
  `afterFilter` - the filter to apply after this filter
Returns:
  the composed filter

#### apply

    default ExchangeFunction apply(ExchangeFunction exchange)

Apply this filter to the given ExchangeFunction, resulting in a filtered exchange function.

Parameters:
  `exchange` - the exchange function to filter
Returns:
  the filtered exchange function

#### ofRequestProcessor

    static ExchangeFilterFunction ofRequestProcessor(Function<ClientRequest,reactor.core.publisher.Mono<ClientRequest>> processor)

Adapt the given request processor function to a filter function that only operates on the `ClientRequest`.

Parameters:
  `processor` - the request processor
Returns:
  the resulting filter adapter

#### ofResponseProcessor

    static ExchangeFilterFunction ofResponseProcessor(Function<ClientResponse,reactor.core.publisher.Mono<ClientResponse>> processor)

Adapt the given response processor function to a filter function that only operates on the `ClientResponse`.

Parameters:
  `processor` - the response processor
Returns:
  the resulting filter adapter