io.vertx.ext.web

## Interface RoutingContext

-     public interface RoutingContext

  Represents the context for the handling of a request in Vert.x-Web.

  A new instance is created for each HTTP request that is received in the `Handler.handle(Object)` of the router.

  The same instance is passed to any matching request or failure handlers during the routing of the request or failure.

  The context provides access to the `HttpServerRequest` and `HttpServerResponse` and allows you to maintain arbitrary data that lives for the lifetime of the context. Contexts are discarded once they have been routed to the handler for the request.

  The context also provides access to the `Session`, cookies and body for the request, given the correct handlers in the application.

  If you use the internal error handler

  Author:
    Tim Fox

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `default List<LanguageHeader>` | `acceptableLanguages()` Returns the languages for the current request.
    `int` | `addBodyEndHandler(Handler<Void> handler)` Provides a handler that will be called after the last part of the body is written to the wire.
    `RoutingContext` | `addCookie(Cookie cookie)` Deprecated. Use `HttpServerResponse.addCookie(Cookie)` Add a cookie. This will be sent back to the client in the response.
    `default Future<Void>` | `addEndHandler()` Add an end handler for the request/response context.
    `int` | `addEndHandler(Handler<AsyncResult<Void>> handler)` Add an end handler for the request/response context.
    `int` | `addHeadersEndHandler(Handler<Void> handler)` Add a handler that will be called just before headers are written to the response.
    `default RoutingContext` | `attachment(String filename)` Set Content-Disposition get to "attachment" with optional `filename` mime type.
    `RequestBody` | `body()`
    `void` | `cancelAndCleanupFileUploads()` Cancel all unfinished file upload in progress and delete all uploaded files.
    `void` | `clearUser()` Clear the current user object in the context.
    `int` | `cookieCount()` Deprecated. Use `HttpServerRequest.cookieCount()`
    `Map<String,Cookie>` | `cookieMap()` Deprecated. Use `HttpServerRequest.cookieMap()`
    `Route` | `currentRoute()`
    `Map<String,Object>` | `data()`
    `default Future<Void>` | `end()` Shortcut to the response end.
    `default Future<Void>` | `end(Buffer buffer)` Shortcut to the response end.
    `default RoutingContext` | `end(Buffer buffer, Handler<AsyncResult<Void>> handler)` See `end(Buffer)`
    `default RoutingContext` | `end(Handler<AsyncResult<Void>> handler)` See `end()`
    `default Future<Void>` | `end(String chunk)` Shortcut to the response end.
    `default RoutingContext` | `end(String chunk, Handler<AsyncResult<Void>> handler)` See `end(String)`
    `default RoutingContext` | `etag(String etag)` Set the ETag of a response.
    `void` | `fail(int statusCode)` Fail the context with the specified status code.
    `void` | `fail(int statusCode, Throwable throwable)` Fail the context with the specified throwable and the specified the status code.
    `void` | `fail(Throwable throwable)` Fail the context with the specified throwable and 500 status code.
    `boolean` | `failed()`
    `Throwable` | `failure()` If the context is being routed to failure handlers after a failure has been triggered by calling `fail(Throwable)` then this will return that throwable.
    `List<FileUpload>` | `fileUploads()`
    `<T> T` | `get(String key)` Get some data from the context.
    `<T> T` | `get(String key, T defaultValue)` Get some data from the context.
    `String` | `getAcceptableContentType()` If the route specifies produces matches, e.g.
    `default Buffer` | `getBody()` Deprecated. Use `body()` instead.
    `default JsonObject` | `getBodyAsJson()` Deprecated. Use `body()` instead.
    `default JsonObject` | `getBodyAsJson(int maxAllowedLength)` Deprecated. Use `body()` instead. Gets the current body buffer as a `JsonObject`. If a positive limit is provided the parsing will only happen if the buffer length is smaller or equal to the limit. Otherwise an `IllegalStateException` is thrown. When the application is only handling uploads in JSON format, it is recommended to set a limit on `BodyHandler.setBodyLimit(long)` as this will avoid the upload to be parsed and loaded into the application memory.
    `default JsonArray` | `getBodyAsJsonArray()` Deprecated. Use `body()` instead.
    `default JsonArray` | `getBodyAsJsonArray(int maxAllowedLength)` Deprecated. Use `body()` instead. Gets the current body buffer as a `JsonArray`. If a positive limit is provided the parsing will only happen if the buffer length is smaller or equal to the limit. Otherwise an `IllegalStateException` is thrown. When the application is only handling uploads in JSON format, it is recommended to set a limit on `BodyHandler.setBodyLimit(long)` as this will avoid the upload to be parsed and loaded into the application memory.
    `default String` | `getBodyAsString()` Deprecated. Use `body()` instead.
    `default String` | `getBodyAsString(String encoding)` Deprecated. Use `body()` instead. Get the entire HTTP request body as a string, assuming the specified encoding. The context must have first been routed to a `BodyHandler` for this to be populated.
    `Cookie` | `getCookie(String name)` Deprecated. Use `HttpServerRequest.getCookie(String)` Get the cookie with the specified name.
    `default boolean` | `is(String type)` Check if the incoming request contains the "Content-Type" get field, and it contains the give mime `type`.
    `default boolean` | `isFresh()` Check if the request is fresh, aka Last-Modified and/or the ETag still match.
    `boolean` | `isSessionAccessed()` Whether the `session()` has been already called or not.
    `default Future<Void>` | `json(Object json)` Encode an Object to JSON and end the request.
    `default RoutingContext` | `json(Object json, Handler<AsyncResult<Void>> handler)` See `json(Object)`.
    `default RoutingContext` | `lastModified(java.time.Instant instant)` Set the Last-Modified date using a Instant.
    `default RoutingContext` | `lastModified(String instant)` Set the Last-Modified date using a String.
    `String` | `mountPoint()`
    `void` | `next()` Tell the router to route this context to the next matching route (if any).
    `default String` | `normalisedPath()` Deprecated.
    `String` | `normalizedPath()` Return the normalized path for the request.
    `ParsedHeaderValues` | `parsedHeaders()` The headers: Accept Accept-Charset Accept-Encoding Accept-Language Content-Type Parsed into `ParsedHeaderValue`
    `String` | `pathParam(String name)` Gets the value of a single path parameter
    `Map<String,String>` | `pathParams()` Returns a map of named parameters as defined in path declaration with their actual values
    `default LanguageHeader` | `preferredLanguage()` Helper to return the user preferred language.
    `RoutingContext` | `put(String key, Object obj)` Put some arbitrary data in the context.
    `List<String>` | `queryParam(String name)` Gets the value of a single query parameter.
    `MultiMap` | `queryParams()` Returns a map of all query parameters inside the query string The query parameters are lazily decoded: the decoding happens on the first time this method is called.
    `MultiMap` | `queryParams(Charset encoding)` Always decode the current query string with the given `encoding`.
    `default Future<Void>` | `redirect(String url)` Perform a 302 redirect to `url`.
    `default RoutingContext` | `redirect(String url, Handler<AsyncResult<Void>> handler)` See `redirect(String)`.
    `<T> T` | `remove(String key)` Remove some data from the context.
    `boolean` | `removeBodyEndHandler(int handlerID)` Remove a body end handler
    `default Cookie` | `removeCookie(String name)` Deprecated. Use `HttpServerResponse.removeCookie(String)` Expire a cookie, notifying a User Agent to remove it from its cookie jar.
    `Cookie` | `removeCookie(String name, boolean invalidate)` Deprecated. Use `HttpServerResponse.removeCookie(String, boolean)` Remove a cookie from the cookie set. If invalidate is true then it will expire a cookie, notifying a User Agent to remove it from its cookie jar.
    `boolean` | `removeEndHandler(int handlerID)` Remove an end handler
    `boolean` | `removeHeadersEndHandler(int handlerID)` Remove a headers end handler
    `HttpServerRequest` | `request()`
    `void` | `reroute(HttpMethod method, String path)` Restarts the current router with a new method and path.
    `default void` | `reroute(String path)` Restarts the current router with a new path and reusing the original method.
    `HttpServerResponse` | `response()`
    `Session` | `session()` Get the session.
    `void` | `setAcceptableContentType(String contentType)` Set the acceptable content type.
    `void` | `setBody(Buffer body)` Deprecated. This method is internal. Users that really need to use it should refer to `RoutingContextInternal.setBody(Buffer)` Set the body. Used by the `BodyHandler`. You will not normally call this method.
    `void` | `setSession(Session session)` Deprecated. This method is internal. Users that really need to use it should refer to `RoutingContextInternal.setSession(Session)` Set the session. Used by the `SessionHandler`. You will not normally call this method.
    `void` | `setUser(User user)` Set the user.
    `int` | `statusCode()` If the context is being routed to failure handlers after a failure has been triggered by calling `fail(int)` then this will return that status code.
    `User` | `user()` Get the authenticated user (if any).
    `Vertx` | `vertx()`

- - ### Method Detail

    - #### request

          HttpServerRequest request()

      Returns:
        the HTTP request object

    - #### response

          HttpServerResponse response()

      Returns:
        the HTTP response object

    - #### next

          void next()

      Tell the router to route this context to the next matching route (if any). This method, if called, does not need to be called during the execution of the handler, it can be called some arbitrary time later, if required.

      If next is not called for a handler then the handler should make sure it ends the response or no response will be sent.

    - #### fail

          void fail(int statusCode)

      Fail the context with the specified status code.

      This will cause the router to route the context to any matching failure handlers for the request. If no failure handlers match It will trigger the error handler matching the status code. You can define such error handler with `Router.errorHandler(int, Handler)`. If no error handler is not defined, It will send a default failure response with provided status code.

      Parameters:
        `statusCode` - the HTTP status code

    - #### fail

          void fail(Throwable throwable)

      Fail the context with the specified throwable and 500 status code.

      This will cause the router to route the context to any matching failure handlers for the request. If no failure handlers match It will trigger the error handler matching the status code. You can define such error handler with `Router.errorHandler(int, Handler)`. If no error handler is not defined, It will send a default failure response with 500 status code.

      Parameters:
        `throwable` - a throwable representing the failure

    - #### fail

          void fail(int statusCode,
                    Throwable throwable)

      Fail the context with the specified throwable and the specified the status code.

      This will cause the router to route the context to any matching failure handlers for the request. If no failure handlers match It will trigger the error handler matching the status code. You can define such error handler with `Router.errorHandler(int, Handler)`. If no error handler is not defined, It will send a default failure response with provided status code.

      Parameters:
        `statusCode` - the HTTP status code
        `throwable` - a throwable representing the failure

    - #### put

          RoutingContext put(String key,
                             Object obj)

      Put some arbitrary data in the context. This will be available in any handlers that receive the context.
      Parameters:
        `key` - the key for the data
        `obj` - the data
      Returns:
        a reference to this, so the API can be used fluently

    - #### get

          <T> T get(String key)

      Get some data from the context. The data is available in any handlers that receive the context.
      Type Parameters:
        `T` - the type of the data
      Parameters:
        `key` - the key for the data
      Returns:
        the data
      Throws:
        `ClassCastException` - if the data is not of the expected type

    - #### get

          <T> T get(String key,
                    T defaultValue)

      Get some data from the context. The data is available in any handlers that receive the context.
      Type Parameters:
        `T` - the type of the data
      Parameters:
        `key` - the key for the data
        `defaultValue` - when the underlying data doesn't contain the key this will be the return value.
      Returns:
        the data
      Throws:
        `ClassCastException` - if the data is not of the expected type

    - #### remove

          <T> T remove(String key)

      Remove some data from the context. The data is available in any handlers that receive the context.
      Type Parameters:
        `T` - the type of the data
      Parameters:
        `key` - the key for the data
      Returns:
        the previous data associated with the key
      Throws:
        `ClassCastException` - if the data is not of the expected type

    - #### data

          Map<String,Object> data()

      Returns:
        all the context data as a map

    - #### vertx

          Vertx vertx()

      Returns:
        the Vert.x instance associated to the initiating `Router` for this context

    - #### mountPoint

          String mountPoint()

      Returns:
        the mount point for this router. It will be null for a top level router. For a sub-router it will be the path at which the subrouter was mounted.

    - #### currentRoute

          Route currentRoute()

      Returns:
        the current route this context is being routed through.

    - #### normalisedPath

          @Deprecated
          default String normalisedPath()

      Deprecated.
      Use `normalizedPath()` instead

    - #### normalizedPath

          String normalizedPath()

      Return the normalized path for the request.

      The normalized path is where the URI path has been decoded, i.e. any unicode or other illegal URL characters that were encoded in the original URL with `%` will be returned to their original form. E.g. `%20` will revert to a space. Also `+` reverts to a space in a query.

      The normalized path will also not contain any `..` character sequences to prevent resources being accessed outside of the permitted area.

      It's recommended to always use the normalized path as opposed to `HttpServerRequest.path()` if accessing server resources requested by a client.

      Returns:
        the normalized path

    - #### getCookie

          @Deprecated
          Cookie getCookie(String name)

      Deprecated. Use `HttpServerRequest.getCookie(String)` Get the cookie with the specified name.
      Parameters:
        `name` - the cookie name
      Returns:
        the cookie

    - #### addCookie

          @Deprecated
          RoutingContext addCookie(Cookie cookie)

      Deprecated. Use `HttpServerResponse.addCookie(Cookie)` Add a cookie. This will be sent back to the client in the response.
      Parameters:
        `cookie` - the cookie
      Returns:
        a reference to this, so the API can be used fluently

    - #### removeCookie

          @Deprecated
          default Cookie removeCookie(String name)

      Deprecated. Use `HttpServerResponse.removeCookie(String)` Expire a cookie, notifying a User Agent to remove it from its cookie jar.
      Parameters:
        `name` - the name of the cookie
      Returns:
        the cookie, if it existed, or null

    - #### removeCookie

          @Deprecated
          Cookie removeCookie(String name,
                                          boolean invalidate)

      Deprecated. Use `HttpServerResponse.removeCookie(String, boolean)` Remove a cookie from the cookie set. If invalidate is true then it will expire a cookie, notifying a User Agent to remove it from its cookie jar.
      Parameters:
        `name` - the name of the cookie
      Returns:
        the cookie, if it existed, or null

    - #### cookieCount

          @Deprecated
          int cookieCount()

      Deprecated. Use `HttpServerRequest.cookieCount()`
      Returns:
        the number of cookies.

    - #### cookieMap

          @Deprecated
          Map<String,Cookie> cookieMap()

      Deprecated. Use `HttpServerRequest.cookieMap()`
      Returns:
        a map of all the cookies.

    - #### getBodyAsString

          @Deprecated
          default String getBodyAsString()

      Deprecated. Use `body()` instead.
      Returns:
        the entire HTTP request body as a string, assuming UTF-8 encoding if the request does not provide the content type charset attribute. If a charset is provided in the request that it shall be respected. The context must have first been routed to a `BodyHandler` for this to be populated.

    - #### getBodyAsString

          @Deprecated
          default String getBodyAsString(String encoding)

      Deprecated. Use `body()` instead. Get the entire HTTP request body as a string, assuming the specified encoding. The context must have first been routed to a `BodyHandler` for this to be populated.
      Parameters:
        `encoding` - the encoding, e.g. "UTF-16"
      Returns:
        the body

    - #### getBodyAsJson

          @Deprecated
          default JsonObject getBodyAsJson(int maxAllowedLength)

      Deprecated. Use `body()` instead. Gets the current body buffer as a `JsonObject`. If a positive limit is provided the parsing will only happen if the buffer length is smaller or equal to the limit. Otherwise an `IllegalStateException` is thrown. When the application is only handling uploads in JSON format, it is recommended to set a limit on `BodyHandler.setBodyLimit(long)` as this will avoid the upload to be parsed and loaded into the application memory.
      Parameters:
        `maxAllowedLength` - if the current buffer length is greater than the limit an `IllegalStateException` is thrown. This can be used to avoid DDoS attacks on very long JSON payloads that could take over the CPU while attempting to parse the data.
      Returns:
        Get the entire HTTP request body as a `JsonObject`. The context must have first been routed to a `BodyHandler` for this to be populated.
        When the body is `null` or the `"null"` JSON literal then `null` is returned.

    - #### getBodyAsJsonArray

          @Deprecated
          default JsonArray getBodyAsJsonArray(int maxAllowedLength)

      Deprecated. Use `body()` instead. Gets the current body buffer as a `JsonArray`. If a positive limit is provided the parsing will only happen if the buffer length is smaller or equal to the limit. Otherwise an `IllegalStateException` is thrown. When the application is only handling uploads in JSON format, it is recommended to set a limit on `BodyHandler.setBodyLimit(long)` as this will avoid the upload to be parsed and loaded into the application memory.
      Parameters:
        `maxAllowedLength` - if the current buffer length is greater than the limit an `IllegalStateException` is thrown. This can be used to avoid DDoS attacks on very long JSON payloads that could take over the CPU while attempting to parse the data.
      Returns:
        Get the entire HTTP request body as a `JsonArray`. The context must have first been routed to a `BodyHandler` for this to be populated.
        When the body is `null` or the `"null"` JSON literal then `null` is returned.

    - #### getBodyAsJson

          @Deprecated
          default JsonObject getBodyAsJson()

      Deprecated. Use `body()` instead.
      Returns:
        Get the entire HTTP request body as a `JsonObject`. The context must have first been routed to a `BodyHandler` for this to be populated.
        When the body is `null` or the `"null"` JSON literal then `null` is returned.

    - #### getBodyAsJsonArray

          @Deprecated
          default JsonArray getBodyAsJsonArray()

      Deprecated. Use `body()` instead.
      Returns:
        Get the entire HTTP request body as a `JsonArray`. The context must have first been routed to a `BodyHandler` for this to be populated.
        When the body is `null` or the `"null"` JSON literal then `null` is returned.

    - #### getBody

          @Deprecated
          default Buffer getBody()

      Deprecated. Use `body()` instead.
      Returns:
        Get the entire HTTP request body as a `Buffer`. The context must have first been routed to a `BodyHandler` for this to be populated.

    - #### body

          RequestBody body()

    - #### fileUploads

          List<FileUpload> fileUploads()

      Returns:
        a list of `FileUpload` (if any) for the request. The context must have first been routed to a `BodyHandler` for this to work.

    - #### cancelAndCleanupFileUploads

          void cancelAndCleanupFileUploads()

      Cancel all unfinished file upload in progress and delete all uploaded files.

    - #### session

          Session session()

      Get the session. The context must have first been routed to a `SessionHandler` for this to be populated. Sessions live for a browser session, and are maintained by session cookies.
      Returns:
        the session.

    - #### isSessionAccessed

          boolean isSessionAccessed()

      Whether the `session()` has been already called or not. This is usually used by the `SessionHandler`.
      Returns:
        true if the session has been accessed.

    - #### user

          User user()

      Get the authenticated user (if any). This will usually be injected by an auth handler if authentication if successful.
      Returns:
        the user, or null if the current user is not authenticated.

    - #### failure

          Throwable failure()

      If the context is being routed to failure handlers after a failure has been triggered by calling `fail(Throwable)` then this will return that throwable. It can be used by failure handlers to render a response, e.g. create a failure response page.
      Returns:
        the throwable used when signalling failure

    - #### statusCode

          int statusCode()

      If the context is being routed to failure handlers after a failure has been triggered by calling `fail(int)` then this will return that status code. It can be used by failure handlers to render a response, e.g. create a failure response page. When the status code has not been set yet (it is undefined) its value will be -1.
      Returns:
        the status code used when signalling failure

    - #### getAcceptableContentType

          String getAcceptableContentType()

      If the route specifies produces matches, e.g. produces `text/html` and `text/plain`, and the `accept` header matches one or more of these then this returns the most acceptable match.
      Returns:
        the most acceptable content type.

    - #### parsedHeaders

          ParsedHeaderValues parsedHeaders()

      The headers:
      1. Accept
      2. Accept-Charset
      3. Accept-Encoding
      4. Accept-Language
      5. Content-Type
      Parsed into `ParsedHeaderValue`
      Returns:
        A container with the parsed headers.

    - #### addHeadersEndHandler

          int addHeadersEndHandler(Handler<Void> handler)

      Add a handler that will be called just before headers are written to the response. This gives you a hook where you can write any extra headers before the response has been written when it will be too late.
      Parameters:
        `handler` - the handler
      Returns:
        the id of the handler. This can be used if you later want to remove the handler.

    - #### removeHeadersEndHandler

          boolean removeHeadersEndHandler(int handlerID)

      Remove a headers end handler
      Parameters:
        `handlerID` - the id as returned from `addHeadersEndHandler(Handler)`.
      Returns:
        true if the handler existed and was removed, false otherwise

    - #### addBodyEndHandler

          int addBodyEndHandler(Handler<Void> handler)

      Provides a handler that will be called after the last part of the body is written to the wire. The handler is called asynchronously of when the response has been received by the client. This provides a hook allowing you to do more operations once the request has been sent over the wire. Do not use this for resource cleanup as this handler might never get called (e.g. if the connection is reset).
      Parameters:
        `handler` - the handler
      Returns:
        the id of the handler. This can be used if you later want to remove the handler.

    - #### removeBodyEndHandler

          boolean removeBodyEndHandler(int handlerID)

      Remove a body end handler
      Parameters:
        `handlerID` - the id as returned from `addBodyEndHandler(Handler)`.
      Returns:
        true if the handler existed and was removed, false otherwise

    - #### addEndHandler

          int addEndHandler(Handler<AsyncResult<Void>> handler)

      Add an end handler for the request/response context. This will be called when the response is disposed or an exception has been encountered to allow consistent cleanup. The handler is called asynchronously of when the response has been received by the client.
      Parameters:
        `handler` - the handler that will be called with either a success or failure result.
      Returns:
        the id of the handler. This can be used if you later want to remove the handler.

    - #### addEndHandler

          default Future<Void> addEndHandler()

      Add an end handler for the request/response context. This will be called when the response is disposed or an exception has been encountered to allow consistent cleanup. The handler is called asynchronously of when the response has been received by the client.
      Returns:
        future that will be called with either a success or failure result.
      See Also:
        `addEndHandler(Handler)`

    - #### removeEndHandler

          boolean removeEndHandler(int handlerID)

      Remove an end handler
      Parameters:
        `handlerID` - the id as returned from `addEndHandler(Handler)`.
      Returns:
        true if the handler existed and was removed, false otherwise

    - #### failed

          boolean failed()

      Returns:
        true if the context is being routed to failure handlers.

    - #### setBody

          @Deprecated
          void setBody(Buffer body)

      Deprecated. This method is internal. Users that really need to use it should refer to `RoutingContextInternal.setBody(Buffer)` Set the body. Used by the `BodyHandler`. You will not normally call this method.
      Parameters:
        `body` - the body

    - #### setSession

          @Deprecated
          void setSession(Session session)

      Deprecated. This method is internal. Users that really need to use it should refer to `RoutingContextInternal.setSession(Session)` Set the session. Used by the `SessionHandler`. You will not normally call this method.
      Parameters:
        `session` - the session

    - #### setUser

          void setUser(User user)

      Set the user. Usually used by auth handlers to inject a User. You will not normally call this method.
      Parameters:
        `user` - the user

    - #### clearUser

          void clearUser()

      Clear the current user object in the context. This usually is used for implementing a log out feature, since the current user is unbounded from the routing context.

    - #### setAcceptableContentType

          void setAcceptableContentType(String contentType)

      Set the acceptable content type. Used by
      Parameters:
        `contentType` - the content type

    - #### reroute

          default void reroute(String path)

      Restarts the current router with a new path and reusing the original method. All path parameters are then parsed and available on the params list. Query params will also be allowed and available.
      Parameters:
        `path` - the new http path.

    - #### reroute

          void reroute(HttpMethod method,
                       String path)

      Restarts the current router with a new method and path. All path parameters are then parsed and available on the params list. Query params will also be allowed and available.
      Parameters:
        `method` - the new http request
        `path` - the new http path.

    - #### acceptableLanguages

          default List<LanguageHeader> acceptableLanguages()

      Returns the languages for the current request. The languages are determined from the `Accept-Language` header and sorted on quality. When 2 or more entries have the same quality then the order used to return the best match is based on the lowest index on the original list. For example if a user has en-US and en-GB with same quality and this order the best match will be en-US because it was declared as first entry by the client.
      Returns:
        The best matched language for the request

    - #### preferredLanguage

          default LanguageHeader preferredLanguage()

      Helper to return the user preferred language. It is the same action as returning the first element of the acceptable languages.
      Returns:
        the users preferred locale.

    - #### pathParams

          Map<String,String> pathParams()

      Returns a map of named parameters as defined in path declaration with their actual values
      Returns:
        the map of named parameters

    - #### pathParam

          String pathParam(String name)

      Gets the value of a single path parameter
      Parameters:
        `name` - the name of parameter as defined in path declaration
      Returns:
        the actual value of the parameter or null if it doesn't exist

    - #### queryParams

          MultiMap queryParams()

      Returns a map of all query parameters inside the query string
      The query parameters are lazily decoded: the decoding happens on the first time this method is called. If the query string is invalid it fails the context
      Returns:
        the multimap of query parameters

    - #### queryParams

          MultiMap queryParams(Charset encoding)

      Always decode the current query string with the given `encoding`. The decode result is never cached. Callers to this method are expected to cache the result if needed. Usually users should use `queryParams()`. This method is only useful when the requests without content type (`GET` requests as an example) expect that query params are in the ASCII format `ISO-5559-1`.
      Parameters:
        `encoding` - a non null character set.
      Returns:
        the multimap of query parameters

    - #### queryParam

          List<String> queryParam(String name)

      Gets the value of a single query parameter. For more info `queryParams()`
      Parameters:
        `name` - The name of query parameter
      Returns:
        The list of all parameters matching the parameter name. It returns an empty list if no query parameter with `name` was found

    - #### attachment

          default RoutingContext attachment(String filename)

      Set Content-Disposition get to "attachment" with optional `filename` mime type.
      Parameters:
        `filename` - the filename for the attachment

    - #### redirect

          default Future<Void> redirect(String url)

      Perform a 302 redirect to `url`. If a custom 3xx code is already defined, then that one will be preferred.

      The string "back" is special-cased to provide Referrer support, when Referrer is not present "/" is used.

      Examples:

      redirect('back'); redirect('/login'); redirect('http://google.com');
      Parameters:
        `url` - the target url

    - #### redirect

          default RoutingContext redirect(String url,
                                          Handler<AsyncResult<Void>> handler)

      See `redirect(String)`.

    - #### json

          default Future<Void> json(Object json)

      Encode an Object to JSON and end the request. When `Content-Type` is not set then correct `Content-Type` will be applied to the response
      Parameters:
        `json` - the json
      Returns:
        a future to handle the end of the request

    - #### json

          default RoutingContext json(Object json,
                                      Handler<AsyncResult<Void>> handler)

      See `json(Object)`.

    - #### is

          default boolean is(String type)

      Check if the incoming request contains the "Content-Type" get field, and it contains the give mime `type`. If there is no request body, `false` is returned. If there is no content type, `false` is returned. Otherwise, it returns true if the `type` that matches.

      Examples:

      // With Content-Type: text/html; charset=utf-8 is("html"); // => true is("text/html"); // => true

      // When Content-Type is application/json is("application/json"); // => true is("html"); // => false
      Parameters:
        `type` - content type
      Returns:
        The most close value

    - #### isFresh

          default boolean isFresh()

      Check if the request is fresh, aka Last-Modified and/or the ETag still match.
      Returns:
        true if content is fresh according to the cache.

    - #### etag

          default RoutingContext etag(String etag)

      Set the ETag of a response. This will normalize the quotes if necessary.

      etag('md5hashsum'); etag('"md5hashsum"'); ('W/"123456789"');
      Parameters:
        `etag` - the etag value

    - #### lastModified

          default RoutingContext lastModified(java.time.Instant instant)

      Set the Last-Modified date using a Instant.
      Parameters:
        `instant` - the last modified instant

    - #### lastModified

          default RoutingContext lastModified(String instant)

      Set the Last-Modified date using a String.
      Parameters:
        `instant` - the last modified instant

    - #### end

          default Future<Void> end(String chunk)

      Shortcut to the response end.
      Parameters:
        `chunk` - a chunk
      Returns:
        future

    - #### end

          default RoutingContext end(String chunk,
                                     Handler<AsyncResult<Void>> handler)

      See `end(String)`

    - #### end

          default Future<Void> end(Buffer buffer)

      Shortcut to the response end.
      Parameters:
        `buffer` - a chunk
      Returns:
        future

    - #### end

          default RoutingContext end(Buffer buffer,
                                     Handler<AsyncResult<Void>> handler)

      See `end(Buffer)`

    - #### end

          default Future<Void> end()

      Shortcut to the response end.
      Returns:
        future

    - #### end

          default RoutingContext end(Handler<AsyncResult<Void>> handler)

      See `end()`

Copyright © 2023 Eclipse. All rights reserved.