Package org.elasticsearch.rest
Class RestController
java.lang.Object
org.elasticsearch.rest.RestController
- All Implemented Interfaces:
HttpServerTransport.Dispatcher
public class RestController extends java.lang.Object implements HttpServerTransport.Dispatcher
-
Constructor Summary
Constructors Constructor Description RestController(java.util.Set<RestHeaderDefinition> headersToCopy, java.util.function.UnaryOperator<RestHandler> handlerWrapper, NodeClient client, CircuitBreakerService circuitBreakerService, UsageService usageService) -
Method Summary
Modifier and Type Method Description voiddispatchBadRequest(RestChannel channel, ThreadContext threadContext, java.lang.Throwable cause)Dispatches a bad request.voiddispatchRequest(RestRequest request, RestChannel channel, ThreadContext threadContext)Dispatches theRestRequestto the relevant request handler or responds to the given rest channel directly if the request can't be handled by any request handler.protected voidregisterAsDeprecatedHandler(RestRequest.Method method, java.lang.String path, RestHandler handler, java.lang.String deprecationMessage)Registers a REST handler to be executed when the providedmethodandpathmatch the request.voidregisterHandler(RestHandler restHandler)Registers a REST handler with the controller.protected voidregisterHandler(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.protected voidregisterWithDeprecatedHandler(RestRequest.Method method, java.lang.String path, RestHandler handler, RestRequest.Method deprecatedMethod, java.lang.String deprecatedPath)Registers a REST handler to be executed when the providedmethodandpathmatch the request, or when provided withdeprecatedMethodanddeprecatedPath.
-
Constructor Details
-
RestController
public RestController(java.util.Set<RestHeaderDefinition> headersToCopy, java.util.function.UnaryOperator<RestHandler> handlerWrapper, NodeClient client, CircuitBreakerService circuitBreakerService, UsageService usageService)
-
-
Method Details
-
registerAsDeprecatedHandler
protected void registerAsDeprecatedHandler(RestRequest.Method method, java.lang.String path, RestHandler handler, java.lang.String deprecationMessage)Registers a REST handler to be executed when the providedmethodandpathmatch the request.- Parameters:
method- GET, POST, etc.path- Path to handle (e.g., "/{index}/{type}/_bulk")handler- The handler to actually executedeprecationMessage- The message to log and send as a header in the response
-
registerWithDeprecatedHandler
protected void registerWithDeprecatedHandler(RestRequest.Method method, java.lang.String path, RestHandler handler, RestRequest.Method deprecatedMethod, java.lang.String deprecatedPath)Registers a REST handler to be executed when the providedmethodandpathmatch the request, or when provided withdeprecatedMethodanddeprecatedPath. 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 (
methodwithpath) is a normal REST handler that is not deprecated and it is replacing the deprecated REST handler (deprecatedMethodwithdeprecatedPath) that is using the samehandler.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 executedeprecatedMethod- GET, POST, etc.deprecatedPath- Deprecated path to handle (e.g., "/_optimize")
-
registerHandler
protected 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 executemethod- GET, POST, etc.
-
registerHandler
Registers a REST handler with the controller. The REST handler declares themethodandpathcombinations. -
dispatchRequest
Description copied from interface:HttpServerTransport.DispatcherDispatches theRestRequestto 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:
dispatchRequestin interfaceHttpServerTransport.Dispatcher- Parameters:
request- the request to dispatchchannel- the response channel of this requestthreadContext- the thread context
-
dispatchBadRequest
public void dispatchBadRequest(RestChannel channel, ThreadContext threadContext, java.lang.Throwable cause)Description copied from interface:HttpServerTransport.DispatcherDispatches 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:
dispatchBadRequestin interfaceHttpServerTransport.Dispatcher- Parameters:
channel- the response channel of this requestthreadContext- the thread contextcause- the cause of the bad request
-