#include <userver/server/handlers/handler_base.hpp>
Base class for the request handlers.
Each handler has an associated path and invoked only for the requests for that path.
Name | Description | Default value |
---|---|---|
path | if a request matches this path wildcard then process it by handler | - |
as_fallback | set to "implicit-http-options" and do not specify a path if this handler processes the OPTIONS requests for paths that do not process OPTIONS method | - |
task_processor | a task processor to execute the requests | - |
method | comma-separated list of allowed HTTP methods. HEAD method is implicitly enabled if GET method is enabled | - |
max_request_size | max size of the whole request | 1024 * 1024 |
max_headers_size | max request headers size | 65536 |
parse_args_from_body | optional field to parse request according to x-www-form-urlencoded rules and make parameters accessible as query parameters | false |
auth | server::handlers::auth::HandlerAuthConfig authorization config | - |
url_trailing_slash | 'both' to treat URLs with and without a trailing slash as equal, 'strict-match' otherwise | 'both' |
max_requests_in_flight | integer to limit max pending requests to this handler | <no limit> |
request_body_size_log_limit | trim request to this size before logging | 512 |
response_data_size_log_limit | trim responses to this size before logging | 512 |
max_requests_per_second | integer to limit RPS to this handler | <no limit> |
decompress_request | allow decompression of the requests | true |
throttling_enabled | allow throttling of the requests by components::Server , for more info see its max_response_size_in_flight and requests_queue_size_threshold options | true |
set-response-server-hostname | set to true to add the X-YaTaxi-Server-Hostname header with instance name, set to false to not add the header | <takes the value from components::Server config> |
monitor-handler | Overrides the in-code is_monitor flag that makes the handler run either on server.listener or on server.listener-monitor | – |
set_tracing_headers | whether to set http tracing headers (X-YaTraceId, X-YaSpanId, X-RequestId) | true |
deadline_propagation_enabled | when false , disables HTTP handler deadline propagation | true |
deadline_expired_status_code | the HTTP status code to return if the request deadline expires | 498 |
Definition at line 48 of file handler_base.hpp.
Public Member Functions | |
HandlerBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) | |
virtual void | HandleRequest (request::RequestBase &request, request::RequestContext &context) const =0 |
virtual void | ReportMalformedRequest (request::RequestBase &) const |
bool | IsMonitor () const |
Returns whether this is a monitoring handler. | |
const HandlerConfig & | GetConfig () const |
Returns handler config. | |
Public Member Functions inherited from components::LoggableComponentBase | |
LoggableComponentBase (const ComponentConfig &, const ComponentContext &) | |
LoggableComponentBase (LoggableComponentBase &&)=delete | |
LoggableComponentBase (const LoggableComponentBase &)=delete | |
~LoggableComponentBase () override=default | |
ComponentHealth | GetComponentHealth () const override |
void | OnLoadingCancelled () override |
void | OnAllComponentsLoaded () override |
void | OnAllComponentsAreStopping () override |
Static Public Member Functions | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Member Functions inherited from components::LoggableComponentBase | |
static yaml_config::Schema | GetStaticConfigSchema () |
Protected Types | |
using | HandlerErrorCode = handlers::HandlerErrorCode |
using | InternalMessage = handlers::InternalMessage |
using | ExternalBody = handlers::ExternalBody |
using | ClientError = handlers::ClientError |
using | InternalServerError = handlers::InternalServerError |
|
protected |
Definition at line 78 of file handler_base.hpp.
|
protected |
Definition at line 76 of file handler_base.hpp.
|
protected |
Definition at line 74 of file handler_base.hpp.
|
protected |
Definition at line 75 of file handler_base.hpp.
Definition at line 79 of file handler_base.hpp.
|
pure virtual |
Parses request, executes processing routines, and fills response accordingly. Does not throw.
Implemented in server::handlers::HttpHandlerBase.
|
inline |
Returns whether this is a monitoring handler.
Definition at line 65 of file handler_base.hpp.
|
inlinevirtual |
Produces response to a request unrecognized by the protocol based on provided generic response. Does not throw.
Reimplemented in server::handlers::HttpHandlerBase.
Definition at line 62 of file handler_base.hpp.