Class RestController

    • Method Detail

      • registerAsDeprecatedHandler

        public void registerAsDeprecatedHandler​(RestRequest.Method method,
                                                java.lang.String path,
                                                RestHandler handler,
                                                java.lang.String deprecationMessage,
                                                DeprecationLogger logger)
        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
        logger - The existing deprecation logger to use
      • registerWithDeprecatedHandler

        public void registerWithDeprecatedHandler​(RestRequest.Method method,
                                                  java.lang.String path,
                                                  RestHandler handler,
                                                  RestRequest.Method deprecatedMethod,
                                                  java.lang.String deprecatedPath,
                                                  DeprecationLogger logger)
        Registers a REST handler to be executed when the provided method and path match the request, or when provided with deprecatedMethod and deprecatedPath. Expected usage:
        
         // remove deprecation in next major release
         controller.registerWithDeprecatedHandler(POST, "/_forcemerge", this,
                                                  POST, "/_optimize", deprecationLogger);
         controller.registerWithDeprecatedHandler(POST, "/{index}/_forcemerge", this,
                                                  POST, "/{index}/_optimize", deprecationLogger);
         

        The registered REST handler (method with path) is a normal REST handler that is not deprecated and it is replacing the deprecated REST handler (deprecatedMethod with deprecatedPath) 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, org.elasticsearch.common.logging.DeprecationLogger) and a specific message.

        Parameters:
        method - GET, POST, etc.
        path - Path to handle (e.g., "/_forcemerge")
        handler - The handler to actually execute
        deprecatedMethod - GET, POST, etc.
        deprecatedPath - Deprecated path to handle (e.g., "/_optimize")
        logger - The existing deprecation logger to use
      • registerHandler

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

        public boolean canTripCircuitBreaker​(java.util.Optional<RestHandler> handler)
        Returns:
        true iff the circuit breaker limit must be enforced for processing this request.
      • dispatchBadRequest

        public void dispatchBadRequest​(RestRequest request,
                                       RestChannel channel,
                                       ThreadContext threadContext,
                                       java.lang.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:
        request - the request to dispatch
        channel - the response channel of this request
        threadContext - the thread context
        cause - the cause of the bad request