Actixスタートアップガイド
Rustのインストール
まだRustをお持ちでない方は、Rustのインストールを管理するために、rustup
を使用することをお勧めします。公式のRustガイドには、入門に関する素晴らしいセクションがあります。
Actix Webは現在、最小サポートRustバージョン(MSRV)が1.56です。rustup update
を実行することで、最新かつ最高のRustバージョンが利用できるようになります。このガイドでは、Rust 1.56以降を使用していることを前提に説明しています。
Hello, world!
まず、バイナリベースのCargoプロジェクトを新規に作成し、新しいディレクトリに移動します。
cargo new hello-world
cd hello-world
Cargo.toml
ファイルに以下を追加し、プロジェクトの依存関係([dependencies])にactix-web
を追加します。
[dependencies]
actix-web = "4"
リクエストハンドラは、0個以上のパラメータを受け付ける非同期関数を使用します。これらのパラメータはリクエストから抽出され(FromRequest
トレイト参照)、HttpResponse
に変換可能な型を返します(Responder
トレイト参照)。
src/main.rs
の内容を以下のように置き換えます。
これらのハンドラのいくつかは、組み込みのマクロを使用して直接ルーティング情報を付加していることに注意してください。これらは、ハンドラが応答すべきメソッドとパスを指定するためのものです。manual_hello
(ルーティングマクロを使わないルート) を登録する方法は、後述します。
次に、App
のインスタンスを作成し、リクエストハンドラを登録します。ルーティングマクロを使うハンドラにはApp::service
を、手動でルーティングするハンドラにはApp::route
を使用し、パスとメソッドを宣言します。最後に、アプリはHttpServer
内で起動され、アプリを「アプリケーションファクトリ(application factory)」として使用して、入ってくるリクエストに対応します。
さらに、次のmain
関数をsrc/main.rs
に追記します。
以上です。プログラムをコンパイルし、cargo run
で実行します。#[actix_web::main]
マクロは、actix ランタイム内で非同期 main 関数を実行します。これで、http://127.0.0.1:8080/
または定義した他のルートにアクセスして、結果を確認することができます。