61 const components::ComponentContext& component_context,
62 bool is_monitor =
false
65 ~HttpHandlerBase()
override;
71 virtual const std::string& HandlerName()
const;
77 HttpHandlerStatistics& GetHandlerStatistics()
const;
80 HttpRequestStatistics& GetRequestStatistics()
const;
89 std::string GetResponseDataForLoggingChecked(
90 const http::HttpRequest& request,
91 request::RequestContext& context,
92 const std::string& response_data
95 std::string GetUrlForLoggingChecked(
const http::HttpRequest& request,
request::RequestContext& context)
const;
100 const http::HttpRequest& request,
101 request::RequestContext& context,
108 const http::HttpRequest& request,
109 request::RequestContext& context,
110 const std::exception& ex
119 static yaml_config::Schema GetStaticConfigSchema();
122 [[
noreturn]]
void ThrowUnsupportedHttpMethod(
const http::HttpRequest& request)
const;
154 virtual bool IsStreamed()
const {
return is_body_streamed_; }
171 const http::HttpRequest& request,
172 request::RequestContext& context,
173 const std::string& request_body
178 const http::HttpRequest& request,
179 request::RequestContext& context,
180 const std::string& response_data
190 virtual std::string GetMetaType(
const http::HttpRequest&)
const;
196 void HandleHttpRequest(
http::HttpRequest& request,
request::RequestContext& context)
const;
198 void HandleRequestStream(
http::HttpRequest& http_request,
request::RequestContext& context)
const;
200 std::string GetRequestBodyForLoggingChecked(
201 const http::HttpRequest& request,
202 request::RequestContext& context,
203 const std::string& request_body
206 template <
typename HttpStatistics>
207 void FormatStatistics(utils::statistics::Writer result,
const HttpStatistics& stats);
209 void SetResponseServerHostname(
http::HttpResponse& response)
const;
211 void BuildMiddlewarePipeline(
const components::ComponentConfig&,
const components::ComponentContext&);
213 const dynamic_config::Source config_source_;
215 const std::string handler_name_;
217 std::unordered_map<
int,
logging::
Level> log_level_for_status_codes_;
219 std::unique_ptr<HttpHandlerStatistics> handler_statistics_;
220 std::unique_ptr<HttpRequestStatistics> request_statistics_;
222 bool set_response_server_hostname_;
223 bool is_body_streamed_;