Interface RestHandler

All Known Implementing Classes:
AbstractCatAction, BaseRestHandler, DeprecationRestHandler, FilterRestHandler, RestAddIndexBlockAction, RestAddVotingConfigExclusionAction, RestAliasAction, RestAllocationAction, RestAnalyzeAction, RestAnalyzeIndexDiskUsageAction, RestBulkAction, RestCancelTasksAction, RestCatAction, RestCatComponentTemplateAction, RestCatRecoveryAction, RestCleanupRepositoryAction, RestClearIndicesCacheAction, RestClearScrollAction, RestClearVotingConfigExclusionsAction, RestCloneSnapshotAction, RestCloseIndexAction, RestClosePointInTimeAction, RestClusterAllocationExplainAction, RestClusterGetSettingsAction, RestClusterHealthAction, RestClusterInfoAction, RestClusterRerouteAction, RestClusterSearchShardsAction, RestClusterStateAction, RestClusterStatsAction, RestClusterUpdateSettingsAction, RestCountAction, RestCountAction, RestCreateIndexAction, RestCreateSnapshotAction, RestDeleteAction, RestDeleteComponentTemplateAction, RestDeleteComposableIndexTemplateAction, RestDeleteDanglingIndexAction, RestDeleteDesiredBalanceAction, RestDeleteDesiredNodesAction, RestDeleteIndexAction, RestDeleteIndexTemplateAction, RestDeletePipelineAction, RestDeleteRepositoryAction, RestDeleteSnapshotAction, RestDeleteStoredScriptAction, RestDeleteSynonymRuleAction, RestDeleteSynonymsAction, RestExplainAction, RestFieldCapabilitiesAction, RestFielddataAction, RestFieldUsageStatsAction, RestFlushAction, RestForceMergeAction, RestGetAction, RestGetAliasesAction, RestGetComponentTemplateAction, RestGetComposableIndexTemplateAction, RestGetDesiredBalanceAction, RestGetDesiredNodesAction, RestGetFeatureUpgradeStatusAction, RestGetFieldMappingAction, RestGetHealthAction, RestGetIndexTemplateAction, RestGetIndicesAction, RestGetMappingAction, RestGetPipelineAction, RestGetRepositoriesAction, RestGetScriptContextAction, RestGetScriptLanguageAction, RestGetSettingsAction, RestGetSnapshotsAction, RestGetSourceAction, RestGetStoredScriptAction, RestGetSynonymRuleAction, RestGetSynonymsAction, RestGetSynonymsSetsAction, RestGetTaskAction, RestHealthAction, RestImportDanglingIndexAction, RestIndexAction, RestIndexAction.AutoIdHandler, RestIndexAction.CreateHandler, RestIndexDeleteAliasesAction, RestIndexPutAliasAction, RestIndicesAction, RestIndicesAliasesAction, RestIndicesSegmentsAction, RestIndicesShardStoresAction, RestIndicesStatsAction, RestKnnSearchAction, RestListDanglingIndicesAction, RestListTasksAction, RestMasterAction, RestMultiGetAction, RestMultiSearchAction, RestMultiTermVectorsAction, RestNodeAttrsAction, RestNodesAction, RestNodesCapabilitiesAction, RestNodesHotThreadsAction, RestNodesInfoAction, RestNodesStatsAction, RestNodesUsageAction, RestOpenIndexAction, RestOpenPointInTimeAction, RestPendingClusterTasksAction, RestPendingClusterTasksAction, RestPluginsAction, RestPostFeatureUpgradeAction, RestPrevalidateNodeRemovalAction, RestPutComponentTemplateAction, RestPutComposableIndexTemplateAction, RestPutIndexTemplateAction, RestPutMappingAction, RestPutPipelineAction, RestPutRepositoryAction, RestPutStoredScriptAction, RestPutSynonymRuleAction, RestPutSynonymsAction, RestRecoveryAction, RestRefreshAction, RestReloadAnalyzersAction, RestReloadSecureSettingsAction, RestRemoteClusterInfoAction, RestRepositoriesAction, RestResetFeatureStateAction, RestResizeHandler, RestResizeHandler.RestCloneIndexAction, RestResizeHandler.RestShrinkIndexAction, RestResizeHandler.RestSplitIndexAction, RestResolveClusterAction, RestResolveIndexAction, RestRestoreSnapshotAction, RestRolloverIndexAction, RestSearchAction, RestSearchScrollAction, RestSegmentsAction, RestShardsAction, RestSimulateIndexTemplateAction, RestSimulateIngestAction, RestSimulatePipelineAction, RestSimulateTemplateAction, RestSnapshotAction, RestSnapshotsStatusAction, RestSnapshottableFeaturesAction, RestSyncedFlushAction, RestTasksAction, RestTemplatesAction, RestTermVectorsAction, RestThreadPoolAction, RestUpdateAction, RestUpdateDesiredNodesAction, RestUpdateSettingsAction, RestUpgradeActionDeprecated, RestValidateQueryAction, RestVerifyRepositoryAction
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 RestHandler
Handler for REST requests
  • Method Details

    • handleRequest

      void handleRequest(RestRequest request, RestChannel channel, NodeClient client) throws Exception
      Handles a rest request.
      Parameters:
      request - The request to handle
      channel - The channel to write the request response to
      client - A client to use to make internal requests on behalf of the original request
      Throws:
      Exception
    • canTripCircuitBreaker

      default boolean canTripCircuitBreaker()
    • supportsBulkContent

      default boolean supportsBulkContent()
      Indicates if the RestHandler supports bulk content. A bulk request contains multiple objects delineated by XContent.bulkSeparator(). If a handler returns true this will affect the types of content that can be sent to this endpoint.
    • getConcreteRestHandler

      default RestHandler getConcreteRestHandler()
      Returns the concrete RestHandler for this RestHandler. That is, if this is a delegating RestHandler it returns the delegate. Otherwise it returns itself.
      Returns:
      The underlying RestHandler
    • getServerlessScope

      default Scope getServerlessScope()
      Returns the serverless Scope of this RestHandler. This is only meaningful when running in a servlerless environment. If a RestHandler has no ServerlessScope annotation, then this method returns null, meaning that this RestHandler is not visible at all in Serverless mode.
      Returns:
      The Scope for this handler, or null if there is no ServerlessScope annotation
    • allowsUnsafeBuffers

      default boolean allowsUnsafeBuffers()
      Indicates if the RestHandler supports working with pooled buffers. If the request handler will not escape the return RestRequest.content() or any buffers extracted from it then there is no need to make a copies of any pooled buffers in the RestRequest instance before passing a request to this handler. If this instance does not support pooled/unsafe buffers RestRequest.ensureSafeBuffers() should be called on any request before passing it to handleRequest(org.elasticsearch.rest.RestRequest, org.elasticsearch.rest.RestChannel, org.elasticsearch.client.internal.node.NodeClient).
      Returns:
      true iff the handler supports requests that make use of pooled buffers
    • routes

      default List<RestHandler.Route> routes()
      The list of RestHandler.Routes that this RestHandler is responsible for handling.
    • allSupportedParameters

      @Nullable default Set<String> allSupportedParameters()
      The set of path and query parameters that could be present on this handler. This method is only required due to #36785, which conflates query and path parameters inside the rest handler. This method should be overridden to add path parameters to supportedQueryParameters() if the handler has path parameters. This method will be removed when supportedQueryParameters() and BaseRestHandler.responseParams() are combined.
    • supportedQueryParameters

      @Nullable default Set<String> supportedQueryParameters()
      The set of query parameters accepted by this rest handler, null if query parameters should not be checked nor validated. TODO - make this not nullable when all handlers have been updated
    • supportedCapabilities

      default Set<String> supportedCapabilities()
      The set of capabilities this rest handler supports.
    • allowSystemIndexAccessByDefault

      default boolean allowSystemIndexAccessByDefault()
      Controls whether requests handled by this class are allowed to to access system indices by default.
      Returns:
      true if requests handled by this class should be allowed to access system indices.
    • mediaTypesValid

      default boolean mediaTypesValid(RestRequest request)
    • getName

      default String getName()