use velen::server::create_server;
use velen::models::server_models::{Request, Response};
let mut server = create_server();
server.get("/get", get_handler);
server.post("/add", post_handler);
server.listen("127.0.0.1", 3333, serverstarthandler);
fn gethandler(: Request, mut res: Response) {
res.setstatuscode(200);
res.setheader("Content-Type", "application/json");
struct GoodResponse {
message: String,
}
impl Display for GoodResponse {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{{\"message\": \"{}\"}}", self.message)
}
}
let goodresponse = GoodResponse {
message: "I'm good, thank you very much Sir!".tostring(),
};
res.send(goodresponse.tostring());
}
fn posthandler(req: Request, mut res: Response) {
res.setstatuscode(200);
res.setheader("Content-Type", "application/json");
struct GoodResponse {
message: String,
}
impl Display for GoodResponse {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{{\"message\": \"{}\"}}", self.message)
}
}
let goodresponse = GoodResponse {
message: format!("Received query parameters x={:?}, y={:?}", req.queryparams.get("x").unwrap(), req.queryparams.get("y").unwrap()),
};
res.send(goodresponse.tostring());
}
set_status_code
has to be called before any set_header
. That is how response is actually sent to client.No multithreading
Fix above limitations