public class RestController extends AbstractComponent implements HttpServerTransport.Dispatcher
logger, settings
Constructor and Description |
---|
RestController(Settings settings,
java.util.Set<java.lang.String> headersToCopy,
java.util.function.UnaryOperator<RestHandler> handlerWrapper,
NodeClient client,
CircuitBreakerService circuitBreakerService) |
Modifier and Type | Method and Description |
---|---|
boolean |
canTripCircuitBreaker(RestRequest request) |
void |
dispatchBadRequest(RestRequest request,
RestChannel channel,
ThreadContext threadContext,
java.lang.Throwable cause)
Dispatches a bad request.
|
void |
dispatchRequest(RestRequest request,
RestChannel channel,
ThreadContext threadContext)
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. |
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. |
void |
registerHandler(RestRequest.Method method,
java.lang.String path,
RestHandler handler)
Registers a REST handler to be executed when the provided method and path match the request.
|
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 . |
logDeprecatedSetting, logRemovedSetting, nodeName
public RestController(Settings settings, java.util.Set<java.lang.String> headersToCopy, java.util.function.UnaryOperator<RestHandler> handlerWrapper, NodeClient client, CircuitBreakerService circuitBreakerService)
public void registerAsDeprecatedHandler(RestRequest.Method method, java.lang.String path, RestHandler handler, java.lang.String deprecationMessage, DeprecationLogger logger)
method
and path
match the request.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 responselogger
- The existing deprecation logger to usepublic void registerWithDeprecatedHandler(RestRequest.Method method, java.lang.String path, RestHandler handler, RestRequest.Method deprecatedMethod, java.lang.String deprecatedPath, DeprecationLogger logger)
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.
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")logger
- The existing deprecation logger to usepublic void registerHandler(RestRequest.Method method, java.lang.String path, RestHandler handler)
method
- GET, POST, etc.path
- Path to handle (e.g., "/{index}/{type}/_bulk")handler
- The handler to actually executepublic boolean canTripCircuitBreaker(RestRequest request)
request
- The current request. Must not be null.public void dispatchRequest(RestRequest request, RestChannel channel, ThreadContext threadContext)
HttpServerTransport.Dispatcher
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.dispatchRequest
in interface HttpServerTransport.Dispatcher
request
- the request to dispatchchannel
- the response channel of this requestthreadContext
- the thread contextpublic void dispatchBadRequest(RestRequest request, RestChannel channel, ThreadContext threadContext, java.lang.Throwable cause)
HttpServerTransport.Dispatcher
dispatchBadRequest
in interface HttpServerTransport.Dispatcher
request
- the request to dispatchchannel
- the response channel of this requestthreadContext
- the thread contextcause
- the cause of the bad request