From c2f9adfe96406323e715513444a9d70fc7c4c17d Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 28 Jun 2020 23:48:54 +0200 Subject: examples/server: Try using a `conduit_router::RouteBuilder` Try making a server with more than one route. --- Cargo.toml | 1 + examples/server.rs | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index a47f3a0..4d6eb50 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,7 @@ edition = "2018" [dependencies] conduit = "0.9.0-alpha.2" +conduit-router = "0.9.0-alpha.2" fastcgi = "1.0.0" http = "0.2.1" Inflector = "0.11.4" 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> { @@ -25,3 +32,10 @@ fn handler(req: &mut dyn RequestExt) -> io::Result> { .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)) +} -- cgit v1.2.3