29 lines
687 B
Rust
29 lines
687 B
Rust
use tide::Request;
|
|
use tide::prelude::*;
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
struct Animal {
|
|
name: String,
|
|
legs: u8,
|
|
}
|
|
|
|
#[async_std::main]
|
|
async fn main() -> tide::Result<()> {
|
|
println!("Listen 127.0.0.1:8080");
|
|
let mut app = tide::new();
|
|
|
|
app.at("*").get(index);
|
|
app.at("/orders/shoes").post(order_shoes);
|
|
app.listen("127.0.0.1:8080").await?;
|
|
Ok(())
|
|
}
|
|
|
|
async fn index(req: Request<()>) -> tide::Result {
|
|
Ok(format!("Hello world: {:#?}", req).into())
|
|
}
|
|
|
|
async fn order_shoes(mut req: Request<()>) -> tide::Result {
|
|
let Animal { name, legs } = req.body_json().await?;
|
|
Ok(format!("Hello, {}! I've put in an order for {} shoes", name, legs).into())
|
|
}
|