haro 0.3.0

A simple and synchronous web framework written in and for Rust
Documentation
use std::sync::Arc;

use haro::{middleware, Application, DynHandler, Request, Response};
use serde_json::json;

fn main() {
    let mut app = Application::new("0:8080");
    app.middleware(middleware::logging);
    app.middleware(my_middleware);
    app.route("/", index);
    app.route("/hello/:name", hello);
    app.run();
}

fn index(_: Request) -> Response {
    Response::str("Hello Haro")
}

fn hello(req: Request) -> Response {
    let data = json!({
        "method":req.method(),
        "args":req.args,
        "params":req.params,
        "data":req.data,
    });
    Response::json(data)
}

fn my_middleware(next: DynHandler) -> DynHandler {
    Arc::new(move |req: Request| -> Response {
        println!("before request");
        let res = next(req);
        println!("after request");
        res
    })
}