spring-framework / org.springframework.web.servlet.function / RouterFunctionDsl

RouterFunctionDsl

class RouterFunctionDsl

Provide a WebMvc.fn RouterFunction Reactive Kotlin DSL created by router { } in order to be able to write idiomatic Kotlin code.

Author
Sebastien Deleuze

Since
5.2

Functions

accept

Route to the given handler function if the given accept predicate applies.

fun accept(mediaType: MediaType, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that tests if the request's accept } header is compatible with any of the given media types.

fun accept(vararg mediaType: MediaType): RequestPredicate

accepted

fun accepted(): BodyBuilder!

add

Merge externally defined router functions into this one.

fun add(routerFunction: RouterFunction<ServerResponse>): Unit

after

Filter the response object for all routes created by this builder with the given response processing function. Filters are typically used to address cross-cutting concerns, such as logging, security, etc.

fun after(responseProcessor: (ServerRequest, ServerResponse) -> ServerResponse): Unit

and

Return a composed request predicate that tests against both this predicate AND the other predicate (String processed as a path predicate). When evaluating the composed predicate, if this predicate is false, then the other predicate is not evaluated.

infix fun RequestPredicate.and(other: String): RequestPredicate

Return a composed request predicate that tests against both this predicate (String processed as a path predicate) AND the other predicate. When evaluating the composed predicate, if this predicate is false, then the other predicate is not evaluated.

infix fun String.and(other: RequestPredicate): RequestPredicate

Return a composed request predicate that tests against both this predicate AND the other predicate. When evaluating the composed predicate, if this predicate is false, then the other predicate is not evaluated.

infix fun RequestPredicate.and(other: RequestPredicate): RequestPredicate

badRequest

fun badRequest(): BodyBuilder!

before

Filter the request object for all routes created by this builder with the given request processing function. Filters are typically used to address cross-cutting concerns, such as logging, security, etc.

fun before(requestProcessor: (ServerRequest) -> ServerRequest): Unit

contentType

Route to the given handler function if the given contentType predicate applies.

fun contentType(mediaType: MediaType, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that tests if the request's content type is included by any of the given media types.

fun contentType(vararg mediaTypes: MediaType): RequestPredicate

created

fun created(location: URI): BodyBuilder!

DELETE

Adds a route to the given handler function that handles all HTTP DELETE requests that match the given pattern.

fun DELETE(pattern: String, f: (ServerRequest) -> ServerResponse): Unit
fun DELETE(pattern: String, predicate: RequestPredicate, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that matches if request's HTTP method is DELETE and the given pattern matches against the request path.

fun DELETE(pattern: String): RequestPredicate

filter

Filters all routes created by this router with the given filter function. Filter functions are typically used to address cross-cutting concerns, such as logging, security, etc.

fun filter(filterFunction: (ServerRequest, (ServerRequest) -> ServerResponse) -> ServerResponse): Unit

from

fun from(other: ServerResponse): BodyBuilder!

GET

Adds a route to the given handler function that handles all HTTP GET requests that match the given pattern.

fun GET(pattern: String, f: (ServerRequest) -> ServerResponse): Unit
fun GET(pattern: String, predicate: RequestPredicate, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that matches if request's HTTP method is GET and the given pattern matches against the request path.

fun GET(pattern: String): RequestPredicate

HEAD

Adds a route to the given handler function that handles all HTTP HEAD requests that match the given pattern.

fun HEAD(pattern: String, f: (ServerRequest) -> ServerResponse): Unit
fun HEAD(pattern: String, predicate: RequestPredicate, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that matches if request's HTTP method is HEAD and the given pattern matches against the request path.

fun HEAD(pattern: String): RequestPredicate

headers

Route to the given handler function if the given headers predicate applies.

fun headers(headersPredicate: (Headers) -> Boolean, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that tests the request's headers against the given headers predicate.

fun headers(headersPredicate: (Headers) -> Boolean): RequestPredicate

invoke

Route to the given handler function if the given request predicate applies.

operator fun RequestPredicate.invoke(f: (ServerRequest) -> ServerResponse): Unit

Route to the given handler function if the given predicate (String processed as a path predicate) applies.

operator fun String.invoke(f: (ServerRequest) -> ServerResponse): Unit

method

Route to the given handler function if the given method predicate applies.

fun method(httpMethod: HttpMethod, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that tests against the given HTTP method.

fun method(httpMethod: HttpMethod): RequestPredicate

nest

Route to the given router function if the given request predicate applies. This method can be used to create nested routes, where a group of routes share a common path (prefix), header, or other request predicate.

fun RequestPredicate.nest(r: RouterFunctionDsl.() -> Unit): Unit

Route to the given router function if the given request predicate (String processed as a path predicate) applies. This method can be used to create nested routes, where a group of routes share a common path (prefix), header, or other request predicate.

fun String.nest(r: RouterFunctionDsl.() -> Unit): Unit

noContent

fun noContent(): HeadersBuilder<*>!

not

Return a predicate that represents the logical negation of this predicate.

operator fun RequestPredicate.not(): RequestPredicate

notFound

fun notFound(): HeadersBuilder<*>!

ok

fun ok(): BodyBuilder!

onError

Filters all exceptions that match the predicate by applying the given response provider function.

fun onError(predicate: (Throwable) -> Boolean, responseProvider: (Throwable, ServerRequest) -> ServerResponse): Unit
fun <E : Throwable> onError(responseProvider: (Throwable, ServerRequest) -> ServerResponse): Unit

OPTIONS

Adds a route to the given handler function that handles all HTTP OPTIONS requests that match the given pattern.

fun OPTIONS(pattern: String, f: (ServerRequest) -> ServerResponse): Unit
fun OPTIONS(pattern: String, predicate: RequestPredicate, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that matches if request's HTTP method is OPTIONS and the given pattern matches against the request path.

fun OPTIONS(pattern: String): RequestPredicate

or

Return a composed request predicate that tests against both this predicate OR the other predicate (String processed as a path predicate). When evaluating the composed predicate, if this predicate is true, then the other predicate is not evaluated.

infix fun RequestPredicate.or(other: String): RequestPredicate

Return a composed request predicate that tests against both this predicate (String processed as a path predicate) OR the other predicate. When evaluating the composed predicate, if this predicate is true, then the other predicate is not evaluated.

infix fun String.or(other: RequestPredicate): RequestPredicate

Return a composed request predicate that tests against both this predicate OR the other predicate. When evaluating the composed predicate, if this predicate is true, then the other predicate is not evaluated.

infix fun RequestPredicate.or(other: RequestPredicate): RequestPredicate

param

Route to the given handler function if the given queryParam predicate applies.

fun param(name: String, predicate: (String) -> Boolean, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that tests the request's query parameter of the given name against the given predicate.

fun param(name: String, predicate: (String) -> Boolean): RequestPredicate

PATCH

Adds a route to the given handler function that handles all HTTP PATCH requests that match the given pattern.

fun PATCH(pattern: String, f: (ServerRequest) -> ServerResponse): Unit
fun PATCH(pattern: String, predicate: RequestPredicate, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that matches if request's HTTP method is PATCH and the given pattern matches against the request path.

fun PATCH(pattern: String): RequestPredicate

path

Route to the given handler function if the given path predicate applies.

fun path(pattern: String, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that tests the request path against the given path pattern.

fun path(pattern: String): RequestPredicate

pathExtension

Route to the given handler function if the given pathExtension predicate applies.

fun pathExtension(extension: String, f: (ServerRequest) -> ServerResponse): Unit
fun pathExtension(predicate: (String) -> Boolean, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that matches if the request's path has the given extension.

fun pathExtension(extension: String): RequestPredicate

Return a RequestPredicate that matches if the request's path matches the given predicate.

fun pathExtension(predicate: (String) -> Boolean): RequestPredicate

permanentRedirect

fun permanentRedirect(location: URI): BodyBuilder!

POST

Adds a route to the given handler function that handles all HTTP POST requests that match the given pattern.

fun POST(pattern: String, f: (ServerRequest) -> ServerResponse): Unit
fun POST(pattern: String, predicate: RequestPredicate, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that matches if request's HTTP method is POST and the given pattern matches against the request path.

fun POST(pattern: String): RequestPredicate

PUT

Adds a route to the given handler function that handles all HTTP PUT requests that match the given pattern.

fun PUT(pattern: String, f: (ServerRequest) -> ServerResponse): Unit
fun PUT(pattern: String, predicate: RequestPredicate, f: (ServerRequest) -> ServerResponse): Unit

Return a RequestPredicate that matches if request's HTTP method is PUT and the given pattern matches against the request path.

fun PUT(pattern: String): RequestPredicate

resources

Route requests that match the given pattern to resources relative to the given root location.

fun resources(path: String, location: Resource): Unit

Route to resources using the provided lookup function. If the lookup function provides a Resource for the given request, it will be it will be exposed using a HandlerFunction that handles GET, HEAD, and OPTIONS requests.

fun resources(lookupFunction: (ServerRequest) -> Resource?): Unit

seeOther

fun seeOther(location: URI): BodyBuilder!

status

fun status(status: HttpStatus): BodyBuilder!
fun status(status: Int): BodyBuilder!

temporaryRedirect

fun temporaryRedirect(location: URI): BodyBuilder!

unprocessableEntity

fun unprocessableEntity(): BodyBuilder!