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

java.lang.Object
org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandlerAdapter
org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandlerAdapter
org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler<RoutedRequest>
org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler<T>
org.apache.flink.runtime.rest.handler.AbstractHandler<T,R,M>
org.apache.flink.runtime.rest.handler.AbstractRestHandler<T,R,P,M>
Type Parameters:
R - type of incoming requests
P - type of outgoing responses
All Implemented Interfaces:
AutoCloseable, org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandler, org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandler, org.apache.flink.util.AutoCloseableAsync
Direct Known Subclasses:
AbstractAggregatingMetricsHandler, AbstractAsynchronousOperationHandlers.StatusHandler, AbstractAsynchronousOperationHandlers.TriggerHandler, AbstractCheckpointStatsHandler, AbstractExecutionGraphHandler, AbstractMetricsHandler, AbstractResourceManagerHandler, CheckpointHandlers.CheckpointStatusHandler, CheckpointHandlers.CheckpointTriggerHandler, ClientCoordinationHandler, ClusterConfigHandler, ClusterOverviewHandler, DashboardConfigHandler, JobCancellationHandler, JobClientHeartbeatHandler, JobExecutionResultHandler, JobIdsHandler, JobManagerEnvironmentHandler, JobManagerJobConfigurationHandler, JobManagerJobEnvironmentHandler, JobManagerLogListHandler, JobManagerProfilingHandler, JobManagerProfilingListHandler, JobManagerThreadDumpHandler, JobResourceRequirementsHandler, JobResourceRequirementsUpdateHandler, JobsOverviewHandler, JobStatusHandler, JobSubmitHandler, JobVertexBackPressureHandler, SavepointHandlers.SavepointStatusHandler, SavepointHandlers.SavepointTriggerHandler, SavepointHandlers.StopWithSavepointHandler, ShutdownHandler

@Sharable public abstract class AbstractRestHandler<T extends RestfulGateway,R extends RequestBody,P extends ResponseBody,M extends MessageParameters> extends AbstractHandler<T,R,M>
Super class for netty-based handlers that work with RequestBodys and ResponseBodys.

Subclasses must be thread-safe.

  • Constructor Details

  • Method Details

    • getMessageHeaders

      public MessageHeaders<R,P,M> getMessageHeaders()
    • 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