Interface Handler

All Known Subinterfaces:
DescribableHandler
All Known Implementing Classes:
DispatchHandler, HttpClientHandler, IdentityAssertionHandler, IdentityAssertionHandlerTechPreview, JwkSetHandler, ResourceHandler, Router, RouterHandler, ScriptableHandler, SequenceHandler, StaticResponseHandler, WelcomeHandler
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 Handler
Asynchronously handles an HTTP Request by producing an associated Response.
  • Method Details

    • handle

      Promise<Response,NeverThrowsException> handle(Context context, Request request)
      Returns a Promise representing the asynchronous Response of the given request. If any (asynchronous) processing goes wrong, the promise still contains a Response (probably from the 4xx or 5xx status code family).

      A handler that doesn't hand-off the processing to another downstream handler is responsible for creating the response.

      The returned Promise contains the response returned from the server as-is. This is responsibility of the handler to produce the appropriate error response (404, 500, ...) in case of processing error.

      Note: As of Promise 2.0 implementation, it is not permitted to throw any runtime exception here. Doing so produce unexpected behaviour (most likely a server-side hang of the processing thread).

      Parameters:
      context - The request context.
      request - The request.
      Returns:
      A Promise representing the response to be returned to the caller.