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/ または定義した他のルートにアクセスして、結果を確認することができます。