Base class for all the Userver HTTP Handlers. More...
#include <userver/server/handlers/http_handler_base.hpp>
 Inheritance diagram for server::handlers::HttpHandlerBase:
 Collaboration diagram for server::handlers::HttpHandlerBase: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.