m_server
Super minimal HTTP server framework for delivering JSON data; written in Rust.
Getting Started
Below is a super basic example of creating a server and routes.
use m_server::{
server::HttpServer,
http::{
response::HttpResponse,
request::{HttpRequestMethod, HttpRequest},
}
};
const BIND_ADDR: &str = "127.0.0.1:7878";
const POOL_SIZE: usize = 30;
fn get_person(request: &mut HttpRequest) {
let json_data = "
{
\"name\": \"John Doe\",
\"age\": 22
}";
request.respond_with_body(&HttpResponse::ok(), json_data)
}
fn main() {
let mut http_server: HttpServer = HttpServer::new(self::BIND_ADDR).set_pool_size(POOL_SIZE);
http_server.add_route(HttpRequestMethod::Get, "/fort", get_person);
http_server.add_route(HttpRequestMethod::Get, "/person", |http_request| {
let json_data = "
{
\"name\": \"John Doe\",
\"age\": 22,
}";
match &http_request.body.body_params {
Some(params) => {
let wanted_param = "required param";
let msg_opt = params.get(wanted_param);
let msg;
match msg_opt {
Some(message) => msg = message.clone(),
None => {
http_request.respond_with_body(&HttpResponse::bad_request(), "Missing parameter!");
return;
}
}
http_request.respond_with_body(&HttpResponse::created(), &msg);
},
None => http_request.respond_with_body(&HttpResponse::created(), json_data)
}
});
http_server.add_route(HttpRequestMethod::Delete, "/person/{person_id}/settings", |http_request| {
http_request.respond(HttpResponse::ok());
});
http_server.add_route(HttpRequestMethod::Post, "/person", |http_request| {
http_request.respond(HttpResponse::ok());
});
http_server.start();
}