Base class for all the Userver HTTP Handlers.
More...
#include <userver/server/handlers/http_handler_base.hpp>
Base class for all the Userver HTTP Handlers.
Static options:
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> |
Example usage:
namespace samples::hello {
public:
static constexpr std::string_view kName = "handler-hello-sample";
using HttpHandlerBase::HttpHandlerBase;
std::string HandleRequestThrow(
return "Hello world!\n";
}
};
}
- Examples
- postgresql/functional_tests/basic_chaos/postgres_service.cpp, samples/grpc_service/grpc_service.cpp, samples/hello_service/hello_service.cpp, samples/http_caching/http_caching.cpp, samples/mongo_service/mongo_service.cpp, samples/postgres_auth/postgres_service.cpp, samples/postgres_service/postgres_service.cpp, and samples/redis_service/redis_service.cpp.
Definition at line 55 of file http_handler_base.hpp.
◆ GetLogLevelForResponseStatus()
Override it if you need a custom logging level for messages about finish of request handling for some http statuses.
◆ GetRequestBodyForLogging()
◆ GetResponseDataForLogging()
◆ HandleRequest()
◆ HandleRequestThrow()
The core method for HTTP request handling. request
arg contains HTTP headers, full body, etc. The method should return response body.
- Note
- It is used only if IsStreamed() returned
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.
- Examples
- samples/http_caching/http_caching.cpp.
◆ HandleStreamRequest()
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.
- Note
- It is used only if IsStreamed() returned
true
.
◆ IsMethodStatisticIncluded()
virtual bool server::handlers::HttpHandlerBase::IsMethodStatisticIncluded |
( |
| ) |
const |
|
inlineprotectedvirtual |
Override it to show per HTTP-method statistics besides statistics for all methods
Definition at line 134 of file http_handler_base.hpp.
◆ IsStreamed()
virtual bool server::handlers::HttpHandlerBase::IsStreamed |
( |
| ) |
const |
|
inlineprotectedvirtual |
◆ NeedCheckAuth()
virtual bool server::handlers::HttpHandlerBase::NeedCheckAuth |
( |
| ) |
const |
|
inlineprotectedvirtual |
Override it if you want to disable auth checks in handler by some condition
Definition at line 138 of file http_handler_base.hpp.
◆ OnRequestCompleteThrow()
◆ ParseRequestData()
◆ ReportMalformedRequest()
Produces response to a request unrecognized by the protocol based on provided generic response. Does not throw.
Reimplemented from server::handlers::HandlerBase.
The documentation for this class was generated from the following file: