#include "Restful.h" #include #include #include #include DBO_INSTANTIATE_TEMPLATES(MyMessage) DbStruct *m_dbStruct; void JsonResource::handleRequest(const Wt::Http::Request &request, Wt::Http::Response &response) { response.setMimeType("application/json"); response.addHeader("Server", "Wt"); MyMessage message; message.message = "Hello, World!"; Wt::Dbo::JsonSerializer writer(response.out()); writer.serialize(message); } void PlaintextResource::handleRequest(const Wt::Http::Request &request, Wt::Http::Response &response) { response.setMimeType("text/plain"); response.addHeader("Server", "Wt"); response.out() << "Hello, World!"; } DbResource::DbResource(const std::string &db) { if (!m_dbStruct) { m_dbStruct = new DbStruct(db); } } void DbResource::handleRequest(const Wt::Http::Request &request, Wt::Http::Response &response) { response.setMimeType("application/json"); response.addHeader("Server", "Wt"); Wt::Dbo::Transaction transaction(m_dbStruct->session); Wt::Dbo::ptr entry = m_dbStruct->session.load(m_dbStruct->rand()); Wt::Dbo::JsonSerializer writer(response.out()); writer.serialize(entry); } int DbStruct::rand() { return distribution(rng); } DbStruct::DbStruct(const std::string &db) : rng(clock()), distribution(1, 10000) { session.setConnection(std::make_unique(db)); session.mapClass("world"); session.mapClass("fortune"); }