Package com.yahoo.restapi
Class RestApiRequestHandler<T extends RestApiRequestHandler<T>>
- java.lang.Object
-
- com.yahoo.jdisc.AbstractResource
-
- com.yahoo.jdisc.handler.AbstractRequestHandler
-
- com.yahoo.container.jdisc.ThreadedRequestHandler
-
- com.yahoo.container.jdisc.ThreadedHttpRequestHandler
-
- com.yahoo.container.jdisc.LoggingRequestHandler
-
- com.yahoo.restapi.RestApiRequestHandler<T>
-
- All Implemented Interfaces:
HttpRequestHandler
,com.yahoo.jdisc.handler.RequestHandler
,com.yahoo.jdisc.SharedResource
public abstract class RestApiRequestHandler<T extends RestApiRequestHandler<T>> extends LoggingRequestHandler
- Author:
- bjorncs
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
RestApiRequestHandler.RestApiProvider<T>
-
Nested classes/interfaces inherited from class com.yahoo.container.jdisc.LoggingRequestHandler
LoggingRequestHandler.Context
-
Nested classes/interfaces inherited from class com.yahoo.container.jdisc.ThreadedHttpRequestHandler
ThreadedHttpRequestHandler.LazyContentChannel
-
-
Field Summary
-
Fields inherited from class com.yahoo.container.jdisc.ThreadedHttpRequestHandler
CONTENT_TYPE, log
-
Fields inherited from class com.yahoo.container.jdisc.ThreadedRequestHandler
metric
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RestApiRequestHandler(LoggingRequestHandler.Context context, RestApi restApi)
protected
RestApiRequestHandler(LoggingRequestHandler.Context context, RestApiRequestHandler.RestApiProvider<T> provider)
RestApi will usually refer to handler methods of subclass, which are not accessible before super constructor has completed.protected
RestApiRequestHandler(Executor executor, com.yahoo.jdisc.Metric metric, RestApi restApi)
protected
RestApiRequestHandler(Executor executor, com.yahoo.jdisc.Metric metric, RestApiRequestHandler.RestApiProvider<T> provider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HttpResponse
handle(HttpRequest request)
Override this to implement a synchronous style handler.RequestHandlerSpec
requestHandlerSpec()
RestApi
restApi()
-
Methods inherited from class com.yahoo.container.jdisc.LoggingRequestHandler
createLoggingCompletionHandler, testOnlyContext
-
Methods inherited from class com.yahoo.container.jdisc.ThreadedHttpRequestHandler
addDateHeader, asHttpRequest, handle, handleRequest
-
Methods inherited from class com.yahoo.container.jdisc.ThreadedRequestHandler
executor, getRequestType, getTimeout, handleRequest, writeErrorResponseOnOverload
-
Methods inherited from class com.yahoo.jdisc.AbstractResource
currentState, destroy, refer, refer, release, retainCount
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Constructor Detail
-
RestApiRequestHandler
protected RestApiRequestHandler(LoggingRequestHandler.Context context, RestApiRequestHandler.RestApiProvider<T> provider)
RestApi will usually refer to handler methods of subclass, which are not accessible before super constructor has completed. This is hack to leak reference to subclass instance's "this" reference. Caller must ensure that provider instance does not try to access any uninitialized fields.
-
RestApiRequestHandler
protected RestApiRequestHandler(Executor executor, com.yahoo.jdisc.Metric metric, RestApiRequestHandler.RestApiProvider<T> provider)
-
RestApiRequestHandler
protected RestApiRequestHandler(LoggingRequestHandler.Context context, RestApi restApi)
-
-
Method Detail
-
handle
public final HttpResponse handle(HttpRequest request)
Description copied from class:ThreadedHttpRequestHandler
Override this to implement a synchronous style handler.- Specified by:
handle
in classThreadedHttpRequestHandler
- Parameters:
request
- incoming HTTP request- Returns:
- a valid HTTP response for presentation to the user
-
requestHandlerSpec
public RequestHandlerSpec requestHandlerSpec()
- Returns:
- handler specification
-
restApi
public RestApi restApi()
-
-