#include <userver/concurrent/variable.hpp>
struct Message {
std::string name;
std::string message;
};
Message result;
result.name = json[
"name"].
As<std::string>();
result.message = json[
"message"].
As<std::string>();
return result;
}
json["name"] = value.name;
json["message"] = value.message;
}
public:
using HttpHandlerJsonBase::HttpHandlerJsonBase;
Value HandleRequestJsonThrow(const HttpRequest& request, const Value& json, RequestContext&) const override {
if (request.GetMethod() == server::http::HttpMethod::kPost) {
auto message = json.
As<Message>();
auto locked_data = messages_.Lock();
locked_data->push_back(std::move(message));
return {};
}
std::vector<Message> snapshot;
{
auto locked_data = messages_.Lock();
snapshot = *locked_data;
}
}
private:
};
int main(int argc, char* argv[]) {
.
Append<MessagesHandler>(
"handler-messages")
.Append<components::FsCache>("fs-cache-main")
}