rodzic
ba2138f77d
commit
562a88e956
|
@ -8,6 +8,5 @@ edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix-web = "1"
|
actix-web = "1"
|
||||||
serde = "1"
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_derive = "1"
|
|
||||||
env_logger = "0.6"
|
env_logger = "0.6"
|
|
@ -4,7 +4,7 @@ extern crate actix_web;
|
||||||
use actix_web::{
|
use actix_web::{
|
||||||
guard, http::Method, middleware, web, App, HttpResponse, HttpServer,
|
guard, http::Method, middleware, web, App, HttpResponse, HttpServer,
|
||||||
};
|
};
|
||||||
use serde_derive::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::env;
|
use std::env;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
|
|
|
@ -7,6 +7,7 @@ edition = "2018"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix-web = "1"
|
actix-web = "2"
|
||||||
env_logger = "0.6"
|
env_logger = "0.6"
|
||||||
actix-files = "0"
|
actix-files = "0"
|
||||||
|
actix-rt = "1"
|
|
@ -3,36 +3,39 @@ extern crate actix_web;
|
||||||
|
|
||||||
use actix_web::{web, App, middleware, HttpServer, Responder, Result};
|
use actix_web::{web, App, middleware, HttpServer, Responder, Result};
|
||||||
use std::{env};
|
use std::{env};
|
||||||
use actix_files as fs;
|
use actix_files::NamedFile;
|
||||||
|
|
||||||
|
|
||||||
fn index() -> Result<fs::NamedFile> {
|
async fn index() -> Result<NamedFile> {
|
||||||
Ok(fs::NamedFile::open("static/index.html")?)
|
Ok(NamedFile::open("static/index.html")?)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn path_parser(info: web::Path<(String, i32)>) -> impl Responder {
|
async fn path_parser(info: web::Path<(String, i32)>) -> impl Responder {
|
||||||
format!("You tried to reach '{}/{}'", info.0, info.1)
|
format!("You tried to reach '{}/{}'", info.0, info.1)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn rust_cookbook() -> impl Responder {
|
async fn rust_cookbook() -> impl Responder {
|
||||||
format!("Welcome to the Rust Cookbook")
|
format!("Welcome to the Rust Cookbook")
|
||||||
}
|
}
|
||||||
|
|
||||||
#[get("/foxes")]
|
#[get("/foxes")]
|
||||||
fn foxes() -> Result<fs::NamedFile> {
|
async fn foxes() -> Result<NamedFile> {
|
||||||
Ok(fs::NamedFile::open("static/foxes.jpg")?)
|
Ok(NamedFile::open("static/foxes.jpg")?)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() -> std::io::Result<()> {
|
#[actix_rt::main]
|
||||||
|
async fn main() -> std::io::Result<()> {
|
||||||
env::set_var("RUST_LOG", "actix_web=debug");
|
env::set_var("RUST_LOG", "actix_web=debug");
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
HttpServer::new(
|
HttpServer::new(|| {
|
||||||
|| App::new()
|
App::new()
|
||||||
.wrap(middleware::Logger::default())
|
.wrap(middleware::Logger::default())
|
||||||
|
.route("/", web::get().to(index))
|
||||||
|
.route("/welcome", web::get().to(rust_cookbook))
|
||||||
|
.route("/{path}/{id}", web::get().to(path_parser))
|
||||||
.service(foxes)
|
.service(foxes)
|
||||||
.service(web::resource("/").to(index))
|
})
|
||||||
.service(web::resource("/welcome").to(rust_cookbook))
|
.bind("127.0.0.1:8088")?
|
||||||
.service(web::resource("/{path}/{id}").to(path_parser)))
|
|
||||||
.bind("127.0.0.1:8081")?
|
|
||||||
.run()
|
.run()
|
||||||
|
.await
|
||||||
}
|
}
|
Ładowanie…
Reference in New Issue