昨天已經成功地為我們的 QR Code 製造機設定好 Rust 和 Cargo 的開發環境。而今天,則要開始進入 Rust 的 Web 開發領域,利用 Actix Web 這個強大的 Web 框架。
昨天一開始有探討選擇 Rust 的理由,那麼選擇一個合適的 Web 框架也是至關重要的。截至目前為止,Actix Web 在 GitHub 上所獲得的星星數是 18.5k,在所有 Rust Web 框架中屬於前段班,這也代表 Actix Web 是一個熱門並且有一定使用者的開源專案,以下也是為什麼選擇 Actix Web 的一些優點:
那麼我們就來建立一個新的 Rust 專案吧!這個專案我們命名為 "qr-code-generator",新增完之後就移動到專案目錄中。
$ cargo new qr-code-generator
$ cd qr-code-generator
接下來安裝方式可以直接在 Terminal 執行:
$ cargo add actix-web
Cargo 就會安裝 Actix Web 最新的穩定版本到 Rust 專案中。
或者,也可以在專案中根目錄下的 cargo.toml
,並且在 [dependencies]
區塊下面加入以下文字,那個數字代表的是目前的版本:
[dependencies]
actix-web = "4"
然後,執行 cargo build
或是 cargo run
,讓 Cargo 為你安裝這個套件。
老規矩,開始的第一步都先從建立一個簡單的 "Hello World" 開始吧!
找到 main.rs
後,並把裡面的程式碼全部替換成以下:
use actix_web::{get, App, HttpResponse, HttpServer, Responder};
#[get("/")]
async fn hello() -> impl Responder {
HttpResponse::Ok().body("Hello, World!")
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new()
.service(hello)
})
.bind("127.0.0.1:8080")?
.run()
.await
}
接下來在 Terminal 執行 cargo run
。現在,可以打開瀏覽器,在 URL 路徑輸入 http://127.0.0.1:8080
,沒意外的話應該就可以看到 "Hello, World!" 顯示在畫面上。
今天我們建立了基於 Actix Web 的第一個應用。雖然現在只是一個簡單的 "Hello World",但這是建構我們 QR Code 製造機的重要基石。
明天,將會繼續開發我們的專案,加入產生 QR Code 的功能,敬請期待!