Class RestController

java.lang.Object
org.elasticsearch.rest.RestController
All Implemented Interfaces:
HttpServerTransport.Dispatcher

public class RestController extends Object implements HttpServerTransport.Dispatcher
  • Constructor Details

  • Method Details

    • registerAsDeprecatedHandler

      protected void registerAsDeprecatedHandler(RestRequest.Method method, String path, RestHandler handler, String deprecationMessage)
      Registers a REST handler to be executed when the provided method and path match the request.
      Parameters:
      method - GET, POST, etc.
      path - Path to handle (e.g. "/{index}/{type}/_bulk")
      handler - The handler to actually execute
      deprecationMessage - The message to log and send as a header in the response
    • registerAsDeprecatedHandler

      protected void registerAsDeprecatedHandler(RestRequest.Method method, String path, RestHandler handler, String deprecationMessage, @Nullable org.apache.logging.log4j.Level deprecationLevel)
      Registers a REST handler to be executed when the provided method and path match the request.
      Parameters:
      method - GET, POST, etc.
      path - Path to handle (e.g. "/{index}/{type}/_bulk")
      handler - The handler to actually execute
      deprecationMessage - The message to log and send as a header in the response
      deprecationLevel - The deprecation level to use for the message
    • registerAsReplacedHandler

      protected void registerAsReplacedHandler(RestRequest.Method method, String path, RestHandler handler, RestRequest.Method replacedMethod, String replacedPath)
      Registers a REST handler to be executed when the provided method and path match the request, or when provided with replacedMethod and replacedPath. Expected usage:
      
       // remove deprecation in next major release
       controller.registerAsDeprecatedHandler(POST, "/_forcemerge", RestApiVersion.V_8, someHandler,
                                              POST, "/_optimize", RestApiVersion.V_7);
       controller.registerAsDeprecatedHandler(POST, "/{index}/_forcemerge", RestApiVersion.V_8, someHandler,
                                              POST, "/{index}/_optimize", RestApiVersion.V_7);
       

      The registered REST handler (method with path) is a normal REST handler that is not deprecated and it is replacing the deprecated REST handler (replacedMethod with replacedPath) that is using the same handler.

      Deprecated REST handlers without a direct replacement should be deprecated directly using registerAsDeprecatedHandler(org.elasticsearch.rest.RestRequest.Method, java.lang.String, org.elasticsearch.rest.RestHandler, java.lang.String) and a specific message.

      Parameters:
      method - GET, POST, etc.
      path - Path to handle (e.g. "/_forcemerge")
      handler - The handler to actually execute
      replacedMethod - GET, POST, etc.
      replacedPath - Replaced path to handle (e.g. "/_optimize")
    • registerHandler

      protected void registerHandler(RestRequest.Method method, String path, RestHandler handler)
      Registers a REST handler to be executed when one of the provided methods and path match the request.
      Parameters:
      method - GET, POST, etc.
      path - Path to handle (e.g. "/{index}/{type}/_bulk")
      handler - The handler to actually execute
    • registerHandler

      public void registerHandler(RestHandler.Route route, RestHandler handler)
    • registerHandler

      public void registerHandler(RestHandler handler)
      Registers a REST handler with the controller. The REST handler declares the method and path combinations.
    • dispatchRequest

      public void dispatchRequest(RestRequest request, RestChannel channel, ThreadContext threadContext)
      Description copied from interface: HttpServerTransport.Dispatcher
      Dispatches the RestRequest to the relevant request handler or responds to the given rest channel directly if the request can't be handled by any request handler.
      Specified by:
      dispatchRequest in interface HttpServerTransport.Dispatcher
      Parameters:
      request - the request to dispatch
      channel - the response channel of this request
      threadContext - the thread context
    • dispatchBadRequest

      public void dispatchBadRequest(RestChannel channel, ThreadContext threadContext, Throwable cause)
      Description copied from interface: HttpServerTransport.Dispatcher
      Dispatches a bad request. For example, if a request is malformed it will be dispatched via this method with the cause of the bad request.
      Specified by:
      dispatchBadRequest in interface HttpServerTransport.Dispatcher
      Parameters:
      channel - the response channel of this request
      threadContext - the thread context
      cause - the cause of the bad request