Base class for all the Userver HTTP Handlers. More...
#include <userver/server/handlers/http_handler_base.hpp>
Public Member Functions | |
HttpHandlerBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) | |
void | HandleRequest (request::RequestBase &request, request::RequestContext &context) const override |
void | ReportMalformedRequest (request::RequestBase &request) const final |
virtual const std::string & | HandlerName () const |
const std::vector< http::HttpMethod > & | GetAllowedMethods () const |
virtual logging::Level | GetLogLevelForResponseStatus (http::HttpStatus status) const |
virtual FormattedErrorData | GetFormattedExternalErrorBody (const CustomHandlerException &exc) const |
std::string | GetResponseDataForLoggingChecked (const http::HttpRequest &request, request::RequestContext &context, const std::string &response_data) const |
Public Member Functions inherited from server::handlers::HandlerBase | |
HandlerBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) | |
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 server::handlers::HandlerBase | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Member Functions inherited from components::LoggableComponentBase | |
static yaml_config::Schema | GetStaticConfigSchema () |
Protected Member Functions | |
void | ThrowUnsupportedHttpMethod (const http::HttpRequest &request) const |
virtual std::string | HandleRequestThrow (const http::HttpRequest &request, request::RequestContext &context) const |
virtual void | OnRequestCompleteThrow (const http::HttpRequest &, request::RequestContext &) const |
virtual void | HandleStreamRequest (const server::http::HttpRequest &, server::request::RequestContext &, server::http::ResponseBodyStream &) const |
virtual bool | IsStreamed () const |
virtual bool | IsMethodStatisticIncluded () const |
virtual bool | NeedCheckAuth () const |
virtual std::string | GetRequestBodyForLogging (const http::HttpRequest &request, request::RequestContext &context, const std::string &request_body) const |
Override it if you need a custom request body logging. | |
virtual std::string | GetResponseDataForLogging (const http::HttpRequest &request, request::RequestContext &context, const std::string &response_data) const |
Override it if you need a custom response data logging. | |
virtual void | ParseRequestData (const http::HttpRequest &, request::RequestContext &) const |
virtual std::string | GetMetaType (const http::HttpRequest &) const |
Additional Inherited Members | |
Protected Types inherited from server::handlers::HandlerBase | |
using | HandlerErrorCode = handlers::HandlerErrorCode |
using | InternalMessage = handlers::InternalMessage |
using | ExternalBody = handlers::ExternalBody |
using | ClientError = handlers::ClientError |
using | InternalServerError = handlers::InternalServerError |
Base class for all the Userver HTTP Handlers.
Inherits all the options from server::handlers::HandlerBase and adds the following ones:
Name | Description | Default value |
---|---|---|
log-level | overrides log level for this handle | <no override> |
status-codes-log-level | map of "status": log_level items to override span log level for specific status codes | {} |
Definition at line 62 of file http_handler_base.hpp.
|
virtual |
Override it if you need a custom logging level for messages about finish of request handling for some http statuses.
|
protectedvirtual |
Override it if you need a custom request body logging.
Reimplemented in server::handlers::HttpHandlerFlatbufBase< InputType, ReturnType >.
|
protectedvirtual |
Override it if you need a custom response data logging.
Reimplemented in server::handlers::HttpHandlerFlatbufBase< InputType, ReturnType >.
|
overridevirtual |
Parses request, executes processing routines, and fills response accordingly. Does not throw.
Implements server::handlers::HandlerBase.
|
protectedvirtual |
The core method for HTTP request handling. request
arg contains HTTP headers, full body, etc. The method should return response body.
false
. Reimplemented in server::handlers::DnsClientControl, server::handlers::Jemalloc, server::handlers::DynamicDebugLog, server::handlers::HttpHandlerStatic, server::handlers::LogLevel, server::handlers::OnLogRotate, server::handlers::ServerMonitor, server::handlers::HttpHandlerFlatbufBase< InputType, ReturnType >, server::handlers::HttpHandlerJsonBase, and server::handlers::Ping.
|
protectedvirtual |
The core method for HTTP request handling. request
arg contains HTTP headers, full body, etc. The response body is passed in parts to ResponseBodyStream
. Stream transmission is useful when: 1) The body size is unknown beforehand. 2) The client may take advantage of early body transmission (e.g. a Web Browser may start rendering the HTML page or downloading dependant resources). 3) The body size is huge and we want to have only a part of it in memory.
true
.
|
inlineprotectedvirtual |
Override it to show per HTTP-method statistics besides statistics for all methods
Definition at line 141 of file http_handler_base.hpp.
|
inlineprotectedvirtual |
If IsStreamed() returns true
, call HandleStreamRequest() for request handling, HandleRequestThrow() is not called. If it returns false
, HandleRequestThrow() is called instead, and HandleStreamRequest() is not called.
Definition at line 137 of file http_handler_base.hpp.
|
inlineprotectedvirtual |
Override it if you want to disable auth checks in handler by some condition
Definition at line 145 of file http_handler_base.hpp.
|
inlineprotectedvirtual |
Definition at line 112 of file http_handler_base.hpp.
|
inlineprotectedvirtual |
For internal use. You don't need to override it. This method is overridden in format-specific base handlers.
Reimplemented in server::handlers::HttpHandlerFlatbufBase< InputType, ReturnType >, and server::handlers::HttpHandlerJsonBase.
Definition at line 159 of file http_handler_base.hpp.
|
finalvirtual |
Produces response to a request unrecognized by the protocol based on provided generic response. Does not throw.
Reimplemented from server::handlers::HandlerBase.