Class AbstractRestHandler<T extends RestfulGateway,​R extends RequestBody,​P extends ResponseBody,​M extends MessageParameters>

    • Method Detail

      • respondToRequest

        protected CompletableFuture<Void> respondToRequest​(org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandlerContext ctx,
                                                           org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpRequest httpRequest,
                                                           HandlerRequest<R> handlerRequest,
                                                           T gateway)
        Description copied from class: AbstractHandler
        Respond to the given HandlerRequest.
        Specified by:
        respondToRequest in class AbstractHandler<T extends RestfulGateway,​R extends RequestBody,​M extends MessageParameters>
        Parameters:
        ctx - channel handler context to write the response
        httpRequest - original http request
        handlerRequest - typed handler request
        gateway - leader gateway
        Returns:
        Future which is completed once the request has been processed
      • handleRequest

        protected abstract CompletableFuture<P> handleRequest​(@Nonnull
                                                              HandlerRequest<R> request,
                                                              @Nonnull
                                                              T gateway)
                                                       throws RestHandlerException
        This method is called for every incoming request and returns a CompletableFuture containing a the response.

        Implementations may decide whether to throw RestHandlerExceptions or fail the returned CompletableFuture with a RestHandlerException.

        Failing the future with another exception type or throwing unchecked exceptions is regarded as an implementation error as it does not allow us to provide a meaningful HTTP status code. In this case a HttpResponseStatus.INTERNAL_SERVER_ERROR will be returned.

        Parameters:
        request - request that should be handled
        gateway - leader gateway
        Returns:
        future containing a handler response
        Throws:
        RestHandlerException - if the handling failed