body/
body.rs

1use vegemite::{RequestState, Resolve, ResolveGuard, Post, Route, sys, run, Get};
2
3struct Body(String);
4
5impl Resolve for Body {
6    fn resolve(ctx: &mut RequestState) -> ResolveGuard<Self> {
7        ResolveGuard::Value(Body(
8            String::from_utf8(ctx.request.body_mut().get().clone()).unwrap(),
9        ))
10    }
11}
12
13fn post(_post: Post, body: Body) -> u16{
14    println!("Received body {}", body.0);
15
16    200
17}
18
19fn get(_g: Get) -> u16 {
20    200
21}
22
23fn main() {
24    let route = Route::new(sys![post, get]);
25
26    run("127.0.0.1:8080", route); 
27}