anchor.diff:  [[webflux-fn]]
   = Functional Endpoints
   
  -Spring WebFlux includes a lightweight functional programming model in which functions
  +Spring WebFlux includes WebFlux.fn, a lightweight functional programming model in which functions
   are used to route and handle requests and contracts are designed for immutability.
   It is an alternative to the annotation-based programming model but otherwise runs on
   the same <<web-reactive.adoc#webflux-reactive-spring-web>> foundation.
  
positive.code: [[webflux-fn-router-functions]]
  == `RouterFunction`
  
  `RouterFunction` is used to route requests to a `HandlerFunction`. Typically, you do not
  write router functions yourself, but rather use
  `RouterFunctions.route(RequestPredicate, HandlerFunction)`. If the predicate applies, the
  request is routed to the given `HandlerFunction`. Otherwise, no routing is performed,
  and that would translate to a 404 (Not Found) response.
  
  
  
  [[webflux-fn-predicates]]
  
negative.code: [[webflux-fn-overview]]
  == Overview
  
  In WebFlux.fn, an HTTP request is handled with a `HandlerFunction`: a function that takes
  `ServerRequest` and returns a delayed `ServerResponse` (i.e. `Mono<ServerResponse>`).
  Both the request as the response object have immutable contracts that offer JDK 8-friendly
  access to the HTTP request and response.
  `HandlerFunction` is the equivalent of the body of a `@RequestMapping` method in the
  annotation-based programming model.
  
  Incoming requests are routed to a handler function with a `RouterFunction`: a function that
  takes `ServerRequest` and returns a delayed `HandlerFunction` (i.e. `Mono<HandlerFunction>`).
  When the router function matches, a handler function is returned; otherwise an empty Mono.
  `RouterFunction` is the equivalent of a `@RequestMapping` annotation, but with the major
  difference that router functions provide not just data, but also behavior.
  
  `RouterFunctions.route()` provides a router builder that facilitates the creation of routers,
  as the following example shows:
  
  ====
  