9#include <userver/components/component_base.hpp>
11USERVER_NAMESPACE_BEGIN
17namespace server::middlewares {
38using MiddlewaresList = std::vector<std::string>;
51 static constexpr std::string_view kName{
"default-server-middleware-pipeline-builder"};
53 PipelineBuilder(
const components::ComponentConfig&,
const components::ComponentContext&);
62 virtual MiddlewaresList
BuildPipeline(MiddlewaresList userver_middleware_pipeline)
const {
63 auto& resulting_pipeline = userver_middleware_pipeline;
64 const auto& middlewares_to_append = GetMiddlewaresToAppend();
66 resulting_pipeline.insert(resulting_pipeline.end(), middlewares_to_append.begin(), middlewares_to_append.end());
68 return resulting_pipeline;
71 static yaml_config::Schema GetStaticConfigSchema();
74 const MiddlewaresList& GetMiddlewaresToAppend()
const;
77 MiddlewaresList middlewares_to_append_;
87 static constexpr std::string_view kName{
"default-handler-middleware-pipeline-builder"};
89 HandlerPipelineBuilder(
const components::ComponentConfig&,
const components::ComponentContext&);
98 virtual MiddlewaresList
BuildPipeline(MiddlewaresList server_middleware_pipeline)
const {
99 return server_middleware_pipeline;
106inline constexpr bool components::kHasValidate<server::middlewares::PipelineBuilder> =
true;
109inline constexpr auto components::kConfigFileMode<server::middlewares::PipelineBuilder> = ConfigFileMode::kNotRequired;
112inline constexpr bool components::kHasValidate<server::middlewares::HandlerPipelineBuilder> =
true;
115inline constexpr auto components::kConfigFileMode<server::middlewares::HandlerPipelineBuilder> =
116 ConfigFileMode::kNotRequired;