use serde::{Deserialize, Serialize};
|
|
use std::collections::HashMap;
|
|
use warp::http::HeaderMap;
|
|
use warp::Filter;
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
struct ResponseBody {
|
|
headers: HashMap<String, String>,
|
|
}
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
let get_req = warp::path!("get")
|
|
.and(warp::header::headers_cloned())
|
|
.and_then(get_fn);
|
|
|
|
warp::serve(get_req).run(([127, 0, 0, 1], 3030)).await;
|
|
}
|
|
|
|
async fn get_fn(headers: HeaderMap) -> Result<impl warp::Reply, warp::Rejection> {
|
|
let headers: HashMap<String, String> = headers
|
|
.iter()
|
|
.map(|(name, value)| (name.to_string(), value.to_str().unwrap().to_string()))
|
|
.collect();
|
|
Ok(warp::reply::json(&ResponseBody { headers }))
|
|
}
|