30 lines
739 B
Rust
30 lines
739 B
Rust
#![deny(warnings)]
|
|
|
|
use serde_derive::{Deserialize, Serialize};
|
|
|
|
use warp::Filter;
|
|
|
|
#[derive(Deserialize, Serialize)]
|
|
struct Employee {
|
|
name: String,
|
|
rate: u32,
|
|
}
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
pretty_env_logger::init();
|
|
|
|
// POST /employees/:rate {"name":"Sean","rate":2}
|
|
let promote = warp::post()
|
|
.and(warp::path("employees"))
|
|
.and(warp::path::param::<u32>())
|
|
// Only accept bodies smaller than 16kb...
|
|
.and(warp::body::content_length_limit(1024 * 16))
|
|
.and(warp::body::json())
|
|
.map(|rate, mut employee: Employee| {
|
|
employee.rate = rate;
|
|
warp::reply::json(&employee)
|
|
});
|
|
|
|
warp::serve(promote).run(([127, 0, 0, 1], 3030)).await
|
|
}
|