Creates the handler.
The handlers required. None of them are optional.
Checks if the incoming request can be handled. The check is very non-restrictive and will usually be true. It is based on whether the incoming request can be parsed to an operation.
Incoming request and response. Only the request will be used.
A promise resolving if this request can be handled, otherwise rejecting with an Error.
Handles the incoming request and writes out the response. This includes the following steps:
The incoming request and response object to write to.
A promise resolving when the handling is finished.
Input data that will be handled if it can be handled.
A promise resolving if the input can be handled, rejecting with an Error if not. Return value depends on the given type.
Runs all handlers except writing the output to the response. This because any errors thrown here have an impact on the response.
Incoming request.
A promise resolving to the generated Operation.
The central manager that connects all the necessary handlers to go from an incoming request to an executed operation.