參考資訊:
https://www.rust-lang.org/learn/get-started
http://bzz.wallizard.com:8081/share/books/RUST/Programming%20Rust%202nd%20Edition.pdf
產生樣板
$ cargo new hello $ cd hello
Cargo.toml
[package]
name = "hello"
version = "0.1.0"
edition = "2021"
[dependencies]
actix-web = "1.0.8"
serde = { version = "1.0", features = ["derive"] }
src/main.rs
use serde::Deserialize;
use actix_web::{web, App, HttpResponse, HttpServer};
#[derive(Deserialize)]
struct MyStruct {
v1: u64,
v2: u64,
}
fn main() {
let server = HttpServer::new(|| {
App::new()
.route("/", web::get().to(get_index))
.route("/test", web::post().to(post_test))
});
server
.bind("127.0.0.1:3000").expect("error binding server to address")
.run().expect("error running server");
}
fn get_index() -> HttpResponse {
HttpResponse::Ok()
.content_type("text/html")
.body(r#"
<title>Input Test</title>
<form action = "/test" method = "post">
<input type = "text" name = "v1" />
<input type = "text" name = "v2" />
<button type = "submit">Send</button>
</form>
"#,
)
}
fn post_test(form: web::Form<MyStruct>) -> HttpResponse {
let response = format!("v1:{}<br>v2:{}\r\n", form.v1, form.v2);
HttpResponse::Ok()
.content_type("text/html")
.body(response)
}
執行
$ cargo run
開啟網頁並且輸入http://127.0.0.1:3000
