Package-level declarations

Types

Link copied to clipboard
data class AndRouteSelector(val first: RouteSelector, val second: RouteSelector) : RouteSelector

Evaluates a route as a result of the AND operation using two other selectors.

Link copied to clipboard
data class ConstantParameterRouteSelector(val name: String, val value: String) : RouteSelector

Evaluates a route against a constant query parameter value.

Link copied to clipboard
data class HostRouteSelector(val hostList: List<String>, val hostPatterns: List<Regex>, val portsList: List<Int>) : RouteSelector

Evaluates a route against a request's host and port.

Link copied to clipboard
data class HttpAcceptRouteSelector(val contentType: ContentType) : RouteSelector

Evaluates a route against a Content-Type in the HttpHeaders.Accept request header.

Link copied to clipboard
data class HttpHeaderRouteSelector(val name: String, val value: String) : RouteSelector

Evaluates a route against a header in the request.

Link copied to clipboard

Evaluates a route against an HttpMethod.

Link copied to clipboard
data class LocalPortRouteSelector(val port: Int) : RouteSelector

Evaluates a route against the port on which a call is received.

Link copied to clipboard

Evaluates a route against an optional query parameter value and captures its value, if found.

Link copied to clipboard
data class OrRouteSelector(val first: RouteSelector, val second: RouteSelector) : RouteSelector

Evaluates a route as a result of the OR operation using two other selectors.

Link copied to clipboard

Evaluates a route against a query parameter value and captures its value.

Link copied to clipboard

Evaluates a route against a constant path segment.

data class PathSegmentOptionalParameterRouteSelector(val name: String, val prefix: String? = null, val suffix: String? = null) : RouteSelector

Evaluates a route against an optional parameter path segment and captures its value, if any.

Link copied to clipboard
data class PathSegmentParameterRouteSelector(val name: String, val prefix: String? = null, val suffix: String? = null) : RouteSelector

Evaluates a route against a parameter path segment and captures its value.

Link copied to clipboard

A helper object for building instances of RouteSelector from path segments.

Link copied to clipboard
data class PathSegmentTailcardRouteSelector(val name: String = "", val prefix: String = "") : RouteSelector

Evaluates a route against any number of trailing path segments, and captures their values.

Link copied to clipboard

Evaluates a route against any single path segment.

Link copied to clipboard
class RootRouteSelector(rootPath: String = "") : RouteSelector

A selector for a routing root.

Link copied to clipboard
open class Route(val parent: Route?, val selector: RouteSelector, val developmentMode: Boolean = false, val environment: ApplicationEnvironment? = null) : ApplicationCallPipeline

Describes a node in a routing tree.

Link copied to clipboard
abstract class RouteSelector constructor(val quality: Double)

Serves as the base type for routing selectors.

Link copied to clipboard

A result of a route evaluation against a call.

Link copied to clipboard
class Routing(val application: Application) : Route

A root routing node of an Application. You can learn more about routing in Ktor from Routing.

Link copied to clipboard
class RoutingApplicationCall(val engineCall: ApplicationCall, val route: Route, val coroutineContext: CoroutineContext, receivePipeline: ApplicationReceivePipeline, responsePipeline: ApplicationSendPipeline, parameters: Parameters) : ApplicationCall, CoroutineScope

An application call handled by Routing.

Link copied to clipboard

An application request handled by Routing.

Link copied to clipboard

An application response handled by Routing.

Link copied to clipboard

A parsed routing path. Consist of number of segments parts.

Link copied to clipboard
data class RoutingPathSegment(val value: String, val kind: RoutingPathSegmentKind)

A single routing path segment.

Link copied to clipboard

Possible routing path segment kinds.

Link copied to clipboard
class RoutingResolveContext(val routing: Route, val call: ApplicationCall, tracers: List<(RoutingResolveTrace) -> Unit>)

Represents a context in which routing resolution is being performed

Link copied to clipboard

Represents a result of routing resolution.

Link copied to clipboard
class RoutingResolveTrace(val call: ApplicationCall, val segments: List<String>)

Represents the trace of routing resolution process for diagnostics.

Link copied to clipboard
open class RoutingResolveTraceEntry(val route: Route, val segmentIndex: Int, var result: RoutingResolveResult? = null)

Represents a single entry in the RoutingResolveTrace.

Link copied to clipboard

Evaluates a route against a single trailing slash.

Functions

Link copied to clipboard
fun Route.accept(contentType: ContentType, build: Route.() -> Unit): Route

Builds a route to match requests with the HttpHeaders.Accept header matching the specified contentType.

Link copied to clipboard
fun Route.contentType(contentType: ContentType, build: Route.() -> Unit): Route

Builds a route to match requests with the HttpHeaders.ContentType header matching the specified contentType.

Link copied to clipboard

Creates a routing entry for specified path.

Link copied to clipboard

Builds a route to match DELETE requests.

Builds a route to match DELETE requests with the specified path.

Link copied to clipboard

Builds a route to match GET requests.

Builds a route to match GET requests with the specified path.

Link copied to clipboard

Return list of endpoints with handlers under this route.

Link copied to clipboard

Builds a route to match HEAD requests.

Builds a route to match HEAD requests with the specified path.

Link copied to clipboard
fun Route.header(name: String, value: String, build: Route.() -> Unit): Route

Builds a route to match a header with the specified name and value.

Link copied to clipboard
fun Route.host(host: String, port: Int = 0, build: Route.() -> Unit): Route

Creates a route to match a request's host and port. There are no any host resolutions/transformations applied to a host: a request host is treated as a string.

fun Route.host(hosts: List<String>, ports: List<Int> = emptyList(), build: Route.() -> Unit): Route
fun Route.host(hostPattern: Regex, port: Int = 0, build: Route.() -> Unit): Route

Creates a route to match a request host and port. There are no any host resolutions/transformations applied to a host: a request host is treated as a string.

fun Route.host(hosts: List<String>, hostPatterns: List<Regex>, ports: List<Int> = emptyList(), build: Route.() -> Unit): Route

Creates a route to match s request host and port. There are no any host resolutions/transformations applied to a host: a request host is treated as a string.

Link copied to clipboard
fun Route.localPort(port: Int, build: Route.() -> Unit): Route

Creates a route to match a port on which a call was received.

Link copied to clipboard
fun Route.method(method: HttpMethod, body: Route.() -> Unit): Route

Builds a route to match the specified HTTP method.

Link copied to clipboard
fun Route.optionalParam(name: String, build: Route.() -> Unit): Route

Builds a route to capture an optional parameter with specified name, if it exists.

Link copied to clipboard

Builds a route to match OPTIONS requests.

Builds a route to match OPTIONS requests with the specified path.

Link copied to clipboard
fun Route.param(name: String, build: Route.() -> Unit): Route

Builds a route to match a parameter with the specified name and captures its value.

fun Route.param(name: String, value: String, build: Route.() -> Unit): Route

Builds a route to match a parameter with the specified name and value.

Link copied to clipboard
@JvmName(name = "patchTyped")
inline fun <R : Any> Route.patch(crossinline body: suspend PipelineContext<Unit, ApplicationCall>.(R) -> Unit): Route

Builds a route to match PATCH requests receiving a request body as content of the R type.

Builds a route to match PATCH requests.

@JvmName(name = "patchTypedPath")
inline fun <R : Any> Route.patch(path: String, crossinline body: suspend PipelineContext<Unit, ApplicationCall>.(R) -> Unit): Route

Builds a route to match PATCH requests with the specified path receiving a request body as content of the R type.

Builds a route to match PATCH requests with the specified path.

Link copied to clipboard
fun Route.port(vararg ports: Int, build: Route.() -> Unit): Route

Creates a route to match a request port.

Link copied to clipboard
@JvmName(name = "postTyped")
inline fun <R : Any> Route.post(crossinline body: suspend PipelineContext<Unit, ApplicationCall>.(R) -> Unit): Route

Builds a route to match POST requests receiving a request body as content of the R type.

Builds a route to match POST requests.

@JvmName(name = "postTypedPath")
inline fun <R : Any> Route.post(path: String, crossinline body: suspend PipelineContext<Unit, ApplicationCall>.(R) -> Unit): Route

Builds a route to match POST requests with the specified path receiving a request body as content of the R type.

Builds a route to match POST requests with the specified path.

Link copied to clipboard
@JvmName(name = "putTyped")
inline fun <R : Any> Route.put(crossinline body: suspend PipelineContext<Unit, ApplicationCall>.(R) -> Unit): Route

Builds a route to match PUT requests receiving a request body as content of the R type.

Builds a route to match PUT requests.

@JvmName(name = "putTypedPath")
inline fun <R : Any> Route.put(path: String, crossinline body: suspend PipelineContext<Unit, ApplicationCall>.(R) -> Unit): Route

Builds a route to match PUT requests with the specified path receiving a request body as content of the R type.

Builds a route to match PUT requests with the specified path.

Link copied to clipboard
fun Route.route(path: String, build: Route.() -> Unit): Route

Builds a route to match the specified path.

fun Route.route(path: String, method: HttpMethod, build: Route.() -> Unit): Route

Builds a route to match the specified HTTP method and path.

Link copied to clipboard
fun Application.routing(configuration: Routing.() -> Unit): Routing

Installs a Routing plugin for the this Application and runs a configuration script on it. You can learn more about routing in Ktor from Routing.

Properties

Link copied to clipboard

Gets an Application for this Route by scanning the hierarchy to the root.

Link copied to clipboard

A plugin that enables ignoring a trailing slash when resolving URLs.