aboutsummaryrefslogtreecommitdiffstats
path: root/examples/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/server.rs')
-rw-r--r--examples/server.rs18
1 files changed, 16 insertions, 2 deletions
diff --git a/examples/server.rs b/examples/server.rs
index 464e564..6d9c3bb 100644
--- a/examples/server.rs
+++ b/examples/server.rs
@@ -1,4 +1,5 @@
extern crate conduit;
+extern crate conduit_router;
extern crate http;
extern crate fastcgi_conduit;
@@ -6,14 +7,20 @@ use std::fs::OpenOptions;
use std::io::prelude::*;
use std::io;
-use conduit::{Body, RequestExt, Response};
+use conduit::{Body, HttpResult, RequestExt, Response};
use conduit::header;
+use conduit_router::{RequestParams, RouteBuilder};
use fastcgi_conduit::Server;
fn main() {
- Server::start(handler);
+ let mut router = RouteBuilder::new();
+
+ router.get("/", handler);
+ router.get("/:var", var_handler);
+
+ Server::start(router);
}
fn handler(req: &mut dyn RequestExt) -> io::Result<Response<Body>> {
@@ -25,3 +32,10 @@ fn handler(req: &mut dyn RequestExt) -> io::Result<Response<Body>> {
.unwrap()
)
}
+
+fn var_handler(req: &mut dyn RequestExt) -> HttpResult {
+ let var = req.params().find("var").unwrap();
+ let text = format!("The value is: {}", var).into_bytes();
+
+ Response::builder().body(Body::from_vec(text))
+}