The ContextStore class provides a means to set/get a key-value data that can be shared uniquely between middlewares and the handler functions. This allows sending data down the chain from the first to the last handler.
For instance, the auth middleware will inject user id and subsequent middlewares can retrieve it as needed.
ctx.set<std::string>("key", "Value");
ctx.set<int>("id", 967567);
ctx.set<bool>("verified", true);
req.set(
"key", 5
") // INT/DOUBLE/FLOATS ...
req.set("key2", { a: 5, b: 7}) // Objects/JSON
req.set("valid", true) // BOOLs
void set(const std::string &key, T value)
Store a key-value data in the context.
Definition context_store.h:81
The value returned from the get() is a std::optional, meaning a std::nullopt if the key was not found.
std::optional
key = ctx.get<std::string>(
"key");
if(
key.has_value()) { .... }
Additionally, we have a
- See also
- get_or() method that takes in a key and a default value if the key is missing. This unlike
-
get() method, returns a
T& instead of T* depending on the usage needs.