Github   Telegram
No Matches
Public Member Functions | Static Public Member Functions | Protected Types | List of all members
server::handlers::HandlerBase Class Referenceabstract

Base class for the request handlers. More...

#include <userver/server/handlers/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. More...
const HandlerConfigGetConfig () 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

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 methods -
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 false
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

Definition at line 45 of file handler_base.hpp.

Member Typedef Documentation

◆ ClientError

Definition at line 75 of file handler_base.hpp.

◆ ExternalBody

Definition at line 73 of file handler_base.hpp.

◆ HandlerErrorCode

Definition at line 71 of file handler_base.hpp.

◆ InternalMessage

Definition at line 72 of file handler_base.hpp.

◆ InternalServerError

Definition at line 76 of file handler_base.hpp.

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 62 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 59 of file handler_base.hpp.

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