Class BaseRestHandler

java.lang.Object
org.elasticsearch.rest.BaseRestHandler
All Implemented Interfaces:
RestHandler
Direct Known Subclasses:
AbstractCatAction, BaseRestHandler.Wrapper, RestAddIndexBlockAction, RestAddVotingConfigExclusionAction, RestAnalyzeAction, RestBulkAction, RestCancelTasksAction, RestCatAction, RestCleanupRepositoryAction, RestClearIndicesCacheAction, RestClearScrollAction, RestClearVotingConfigExclusionsAction, RestCloneSnapshotAction, RestCloseIndexAction, RestClosePointInTimeAction, RestClusterAllocationExplainAction, RestClusterGetSettingsAction, RestClusterHealthAction, RestClusterRerouteAction, RestClusterSearchShardsAction, RestClusterStateAction, RestClusterStatsAction, RestClusterUpdateSettingsAction, RestCountAction, RestCreateIndexAction, RestCreateSnapshotAction, RestDeleteAction, RestDeleteComponentTemplateAction, RestDeleteComposableIndexTemplateAction, RestDeleteDanglingIndexAction, RestDeleteIndexAction, RestDeleteIndexTemplateAction, RestDeletePipelineAction, RestDeleteRepositoryAction, RestDeleteSnapshotAction, RestDeleteStoredScriptAction, RestExplainAction, RestFieldCapabilitiesAction, RestFlushAction, RestForceMergeAction, RestGetAction, RestGetAliasesAction, RestGetComponentTemplateAction, RestGetComposableIndexTemplateAction, RestGetFieldMappingAction, RestGetIndexTemplateAction, RestGetIndicesAction, RestGetMappingAction, RestGetPipelineAction, RestGetRepositoriesAction, RestGetScriptContextAction, RestGetScriptLanguageAction, RestGetSettingsAction, RestGetSnapshotsAction, RestGetSourceAction, RestGetStoredScriptAction, RestGetTaskAction, RestImportDanglingIndexAction, RestIndexAction, RestIndexDeleteAliasesAction, RestIndexPutAliasAction, RestIndicesAliasesAction, RestIndicesSegmentsAction, RestIndicesShardStoresAction, RestIndicesStatsAction, RestListDanglingIndicesAction, RestListTasksAction, RestMainAction, RestMultiGetAction, RestMultiSearchAction, RestMultiTermVectorsAction, RestNodesHotThreadsAction, RestNodesInfoAction, RestNodesStatsAction, RestNodesUsageAction, RestOpenIndexAction, RestOpenPointInTimeAction, RestPendingClusterTasksAction, RestPutComponentTemplateAction, RestPutComposableIndexTemplateAction, RestPutIndexTemplateAction, RestPutMappingAction, RestPutPipelineAction, RestPutRepositoryAction, RestPutStoredScriptAction, RestRecoveryAction, RestRefreshAction, RestReloadSecureSettingsAction, RestRemoteClusterInfoAction, RestResetFeatureStateAction, RestResizeHandler, RestResolveIndexAction, RestRestoreSnapshotAction, RestRolloverIndexAction, RestSearchAction, RestSearchScrollAction, RestSimulateIndexTemplateAction, RestSimulatePipelineAction, RestSimulateTemplateAction, RestSnapshotsStatusAction, RestSnapshottableFeaturesAction, RestSyncedFlushAction, RestTermVectorsAction, RestUpdateAction, RestUpdateSettingsAction, RestUpgradeActionDeprecated, RestUpgradeStatusActionDeprecated, RestValidateQueryAction, RestVerifyRepositoryAction

public abstract class BaseRestHandler extends Object implements RestHandler
Base handler for REST requests.

This handler makes sure that the headers & context of the handled requests are copied over to the transport requests executed by the associated client. While the context is fully copied over, not all the headers are copied, but a selected few. It is possible to control what headers are copied over by returning them in ActionPlugin.getRestHeaders().

  • Field Details

    • MULTI_ALLOW_EXPLICIT_INDEX

      public static final Setting<Boolean> MULTI_ALLOW_EXPLICIT_INDEX
    • logger

      @Deprecated protected org.apache.logging.log4j.Logger logger
      Deprecated.
      declare your own logger.
    • INCLUDE_TYPE_NAME_PARAMETER

      public static final String INCLUDE_TYPE_NAME_PARAMETER
      Parameter that controls whether certain REST apis should include type names in their requests or responses. Note: Support for this parameter will be removed after the transition period to typeless APIs.
      See Also:
      Constant Field Values
    • DEFAULT_INCLUDE_TYPE_NAME_POLICY

      public static final boolean DEFAULT_INCLUDE_TYPE_NAME_POLICY
      See Also:
      Constant Field Values
  • Constructor Details

    • BaseRestHandler

      public BaseRestHandler()
  • Method Details

    • getUsageCount

      public final long getUsageCount()
    • getName

      public abstract String getName()
      Returns:
      the name of this handler. The name should be human readable and should describe the action that will performed when this API is called. This name is used in the response to the RestNodesUsageAction.
    • routes

      public abstract List<RestHandler.Route> routes()
      The list of RestHandler.Routes that this RestHandler is responsible for handling.
      Specified by:
      routes in interface RestHandler
    • handleRequest

      public final void handleRequest(RestRequest request, RestChannel channel, NodeClient client) throws Exception
      Description copied from interface: RestHandler
      Handles a rest request.
      Specified by:
      handleRequest in interface RestHandler
      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
    • unrecognized

      protected final String unrecognized(RestRequest request, Set<String> invalids, Set<String> candidates, String detail)
    • prepareRequest

      protected abstract BaseRestHandler.RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException
      Prepare the request for execution. Implementations should consume all request params before returning the runnable for actual execution. Unconsumed params will immediately terminate execution of the request. However, some params are only used in processing the response; implementations can override responseParams() to indicate such params.
      Parameters:
      request - the request to execute
      client - client for executing actions on the local node
      Returns:
      the action to execute
      Throws:
      IOException - if an I/O exception occurred parsing the request and preparing for execution
    • responseParams

      protected Set<String> responseParams()
      Parameters used for controlling the response and thus might not be consumed during preparation of the request execution in prepareRequest(RestRequest, NodeClient).
      Returns:
      a set of parameters used to control the response and thus should not trip strict URL parameter checks.