1 use actix_web::{get, web, HttpRequest};
2 #[cfg(unix)]
3 use actix_web::{middleware, App, Error, HttpResponse, HttpServer};
4
5 #[get("/resource1/{name}/index.html")]
index(req: HttpRequest, name: web::Path<String>) -> String6 async fn index(req: HttpRequest, name: web::Path<String>) -> String {
7 println!("REQ: {:?}", req);
8 format!("Hello: {}!\r\n", name)
9 }
10
11 #[cfg(unix)]
index_async(req: HttpRequest) -> Result<&'static str, Error>12 async fn index_async(req: HttpRequest) -> Result<&'static str, Error> {
13 println!("REQ: {:?}", req);
14 Ok("Hello world!\r\n")
15 }
16
17 #[get("/")]
no_params() -> &'static str18 async fn no_params() -> &'static str {
19 "Hello world!\r\n"
20 }
21
22 #[cfg(unix)]
23 #[actix_web::main]
main() -> std::io::Result<()>24 async fn main() -> std::io::Result<()> {
25 env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
26
27 HttpServer::new(|| {
28 App::new()
29 .wrap(middleware::DefaultHeaders::new().header("X-Version", "0.2"))
30 .wrap(middleware::Compress::default())
31 .wrap(middleware::Logger::default())
32 .service(index)
33 .service(no_params)
34 .service(
35 web::resource("/resource2/index.html")
36 .wrap(middleware::DefaultHeaders::new().header("X-Version-R2", "0.3"))
37 .default_service(web::route().to(HttpResponse::MethodNotAllowed))
38 .route(web::get().to(index_async)),
39 )
40 .service(web::resource("/test1.html").to(|| async { "Test\r\n" }))
41 })
42 .bind_uds("/Users/fafhrd91/uds-test")?
43 .workers(1)
44 .run()
45 .await
46 }
47
48 #[cfg(not(unix))]
main()49 fn main() {}
50