aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorTeddy Wing2020-07-04 03:55:28 +0200
committerTeddy Wing2020-07-04 03:55:28 +0200
commit44967e5ae07fc99f56c14dc440cf795851ae117f (patch)
treeb7b7925f24b28c3de977be041e23f6260b65853d /examples
parent23f23e7ee0540c1078db038c3b3cad93b312200a (diff)
parentd125b25f4245df3d0eb80aa726c2a7039945f3de (diff)
downloadfastcgi-conduit-44967e5ae07fc99f56c14dc440cf795851ae117f.tar.bz2
Merge branch 'conduit'
Diffstat (limited to 'examples')
-rw-r--r--examples/server.rs48
1 files changed, 31 insertions, 17 deletions
diff --git a/examples/server.rs b/examples/server.rs
index 7460f56..6d9c3bb 100644
--- a/examples/server.rs
+++ b/examples/server.rs
@@ -1,27 +1,41 @@
+extern crate conduit;
+extern crate conduit_router;
extern crate http;
+extern crate fastcgi_conduit;
use std::fs::OpenOptions;
use std::io::prelude::*;
+use std::io;
-use http::{Response, StatusCode};
+use conduit::{Body, HttpResult, RequestExt, Response};
+use conduit::header;
+use conduit_router::{RequestParams, RouteBuilder};
-use fcgi;
+use fastcgi_conduit::Server;
fn main() {
- fcgi::run(move |req| {
- let mut file = OpenOptions::new()
- .write(true)
- .append(true)
- .open("/tmp/fcgi-log.txt")
- .unwrap();
- write!(file, "ยป {:?}\n", req).unwrap();
-
- let resp = Response::builder()
- .status(StatusCode::OK)
- .body(())
- .unwrap();
-
- return resp;
- });
+ 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>> {
+ Ok(
+ Response::builder()
+ .status(202)
+ .header(header::CONTENT_TYPE, "text/html")
+ .body(Body::from_static(b"<h1>Test</h1>"))
+ .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))
}