Convenient base for handlers that accept requests with body in JSON format and respond with body in JSON format.
More...
#include <userver/server/handlers/http_handler_json_base.hpp>
|
| HttpHandlerJsonBase (const components::ComponentConfig &config, const components::ComponentContext &component_context, bool is_monitor=false) |
|
std::string | HandleRequestThrow (const http::HttpRequest &request, request::RequestContext &context) const final |
|
virtual formats::json::Value | HandleRequestJsonThrow (const http::HttpRequest &request, const formats::json::Value &request_json, request::RequestContext &context) const =0 |
|
Public Member Functions inherited from server::handlers::HttpHandlerBase |
| 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 |
|
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.
|
|
| 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 |
|
Convenient base for handlers that accept requests with body in JSON format and respond with body in JSON format.
Example usage:
struct ConfigDataWithTimestamp {
std::chrono::system_clock::time_point updated_at;
std::unordered_map<std::string, formats::json::Value> key_values;
};
public:
static constexpr std::string_view kName = "handler-config";
using KeyValues = std::unordered_map<std::string, formats::json::Value>;
void SetNewValues(KeyValues&& key_values) {
config_values_.Assign(ConfigDataWithTimestamp{
std::move(key_values),
});
}
private:
};
- Examples
- samples/config_service/config_service.cpp, samples/testsuite-support/src/metrics.cpp, and samples/testsuite-support/src/metrics.hpp.
Definition at line 25 of file http_handler_json_base.hpp.
◆ GetRequestJson()
- Returns
- A pointer to json request if it was parsed successfully or nullptr otherwise.
◆ GetResponseJson()
- Returns
- a pointer to json response if it was returned successfully by
HandleRequestJsonThrow()
or nullptr otherwise.
◆ 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 from server::handlers::HttpHandlerBase.
◆ ParseRequestData()
The documentation for this class was generated from the following file: