userver: server::handlers::HandlerBase Class Reference
No Matches
server::handlers::HandlerBase Class Referenceabstract

#include <userver/server/handlers/handler_base.hpp>

Detailed Description

Base class for the request handlers.

Each handler has an associated path and invoked only for the requests for that path.

Static options:

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.

+ Inheritance diagram for server::handlers::HandlerBase:
+ Collaboration diagram for server::handlers::HandlerBase:

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 HandlerConfigGetConfig () const
 Returns handler config.
- Public Member Functions inherited from components::ComponentBase
 ComponentBase (const ComponentConfig &, const ComponentContext &)
 ComponentBase (ComponentBase &&)=delete
 ComponentBase (const ComponentBase &)=delete
 ~ComponentBase () override=default
ComponentHealth GetComponentHealth () const override
void OnLoadingCancelled () override
void OnAllComponentsLoaded () override
void OnAllComponentsAreStopping () override
- Public Member Functions inherited from components::RawComponentBase
 RawComponentBase (RawComponentBase &&)=delete
 RawComponentBase (const RawComponentBase &)=delete

Static Public Member Functions

static yaml_config::Schema GetStaticConfigSchema ()
- Static Public Member Functions inherited from components::ComponentBase
static yaml_config::Schema GetStaticConfigSchema ()
- Static Public Member Functions inherited from components::RawComponentBase
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 Types inherited from components::ComponentBase
using LoggableComponentBase = ComponentBase
 Legacy alias, use ComponentBase instead.

Member Typedef Documentation

◆ ClientError

◆ ExternalBody

◆ HandlerErrorCode

◆ InternalMessage

◆ InternalServerError

Member Function Documentation

◆ HandleRequest()

virtual void server::handlers::HandlerBase::HandleRequest ( request::RequestBase & request,
request::RequestContext & context ) const
pure virtual

Parses request, executes processing routines, and fills response accordingly. Does not throw.

Implemented in server::handlers::HttpHandlerBase.

◆ IsMonitor()

bool server::handlers::HandlerBase::IsMonitor ( ) const

Returns whether this is a monitoring handler.

Definition at line 65 of file handler_base.hpp.

◆ ReportMalformedRequest()

virtual void server::handlers::HandlerBase::ReportMalformedRequest ( request::RequestBase & ) const

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.

The documentation for this class was generated from the following file: