extern crate env_logger;
extern crate futures;
extern crate tokio_minihttp;
extern crate tokio_proto;
extern crate tokio_service;

use std::io;

use futures::future;
use tokio_minihttp::{Request, Response, Http};
use tokio_proto::TcpServer;
use tokio_service::Service;

struct StatusService;

impl Service for StatusService {
    type Request = Request;
    type Response = Response;
    type Error = io::Error;
    type Future = future::Ok<Response, io::Error>;

    fn call(&self, _request: Request) -> Self::Future {
        println!("Request debug: {:?}", _request);
        let method = _request.method();
        // let path = _request.path();
        let mut resp = Response::new();
        // let mut body = format!("{}{}", method, path);
        resp.status_code(200, "OK");
        resp.body(method);
        println!("+ debug: {:?}", _request);
        future::ok(resp)
    }
}

fn main() {
    drop(env_logger::init());
    let addr = "0.0.0.0:8080".parse().unwrap();
    TcpServer::new(Http, addr)
        .serve(|| Ok(StatusService));
}

extern crate env_logger;
extern crate futures;
extern crate tokio_minihttp;
extern crate tokio_proto;
extern crate tokio_service;

use std::io;

use futures::future;
use tokio_minihttp::{Request, Response, Http};
use tokio_proto::TcpServer;
use tokio_service::Service;

struct StatusService;

impl Service for StatusService {
    type Request = Request;
    type Response = Response;
    type Error = io::Error;
    type Future = future::Ok<Response, io::Error>;

    fn call(&self, _request: Request) -> Self::Future {
        let (code, message) = match _request.path() {
            "/200" => (200, "OK"),
            "/400" => (400, "Bad Request"),
            "/500" => (500, "Internal Server Error"),
            _ => (404, "Not Found")
        };

        let mut resp = Response::new();
        resp.status_code(code, message);
        resp.body(message);
        future::ok(resp)
    }
}

fn main() {
    drop(env_logger::init());
    let addr = "0.0.0.0:8080".parse().unwrap();
    TcpServer::new(Http, addr)
        .serve(|| Ok(StatusService));
}

--- 
+++ 
@@ -20,16 +20,14 @@
     type Future = future::Ok<Response, io::Error>;
 
     fn call(&self, _request: Request) -> Self::Future {
-        let (code, message) = match _request.path() {
-            "/200" => (200, "OK"),
-            "/400" => (400, "Bad Request"),
-            "/500" => (500, "Internal Server Error"),
-            _ => (404, "Not Found")
-        };
-
+        println!("Request debug: {:?}", _request);
+        let method = _request.method();
+        // let path = _request.path();
         let mut resp = Response::new();
-        resp.status_code(code, message);
-        resp.body(message);
+        // let mut body = format!("{}{}", method, path);
+        resp.status_code(200, "OK");
+        resp.body(method);
+        println!("+ debug: {:?}", _request);
         future::ok(resp)
     }
 }
Add handler for all requests.
