62 const components::ComponentContext& component_context,
63 bool is_monitor =
false
66 ~HttpHandlerBase()
override;
72 virtual const std::string& HandlerName()
const;
78 HttpHandlerStatisticsAggregate& GetHandlerStatistics()
const;
87 std::string GetResponseDataForLoggingChecked(
88 const http::HttpRequest& request,
89 request::RequestContext& context,
90 const std::string& response_data
93 std::string GetUrlForLoggingChecked(
const http::HttpRequest& request,
request::RequestContext& context)
const;
98 const http::HttpRequest& request,
99 request::RequestContext& context,
106 const http::HttpRequest& request,
107 request::RequestContext& context,
108 const std::exception& ex
117 static yaml_config::Schema GetStaticConfigSchema();
127 [[
noreturn]]
void ThrowUnsupportedHttpMethod(
const http::HttpRequest& request)
const;
167 const http::HttpRequest& request,
168 request::RequestContext& context,
169 const std::string& request_body
174 const http::HttpRequest& request,
175 request::RequestContext& context,
176 const std::string& response_data
186 virtual std::string GetMetaType(
const http::HttpRequest&)
const;
189 friend class middlewares::HandlerAdapter;
190 friend class middlewares::HandlerMetrics;
191 friend class middlewares::Auth;
193 void HandleHttpRequest(
http::HttpRequest& request,
request::RequestContext& context)
const;
195 void HandleRequestStream(
http::HttpRequest& http_request,
request::RequestContext& context)
const;
197 std::string GetRequestBodyForLoggingChecked(
198 const http::HttpRequest& request,
199 request::RequestContext& context,
200 const std::string& request_body
203 template <
typename HttpStatistics>
204 void FormatStatistics(
utils::
statistics::Writer result,
const HttpStatistics& stats);
208 void SetResponseServerHostname(
http::HttpResponse& response)
const;
210 void BuildMiddlewarePipeline(
const components::ComponentConfig&,
const components::ComponentContext&);
212 const dynamic_config::Source config_source_;
214 const std::string handler_name_;
216 std::unordered_map<
int,
logging::
Level> log_level_for_status_codes_;
218 std::unique_ptr<HttpHandlerStatisticsAggregate> handler_statistics_;
220 bool set_response_server_hostname_;
221 bool is_body_streamed_;