この記事は、 Qiita株式会社のカレンダー | Advent Calendar 2022 – Qiita の 18 日目の記事です。

はじめに

Rustを勉強するため慣れ親しんだWebアプリを作成してRustと親睦を深めることを目的にしています
この記事では簡単に Hollow World を表示までやっていきます

Rust のセットアップ

Rust のセットアップに関してはこちらの記事を参考にセットアップした
こちらの記事では割愛させていただきます

 

今回Webフレームワークとして actix-web を利用していきます

プロジェクトのセットアップ

まずプロジェクトのためのディレクトリを作成します

$ mkdir ./hello_world
$ cd hello_world

次にプロジェクトの初期化を行います
cargo を使っていきます
cargo はRustのビルドシステム兼パッケージマネージャです

$ cargo init
$ tree
.
├── Cargo.toml
└── src
    └── main.rs

ファイルは見ての通り2つ作られます
Cargo.toml がプロジェクトの設定ファイルです
dependencies 以下に必要なパッケージを記載します

[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

もう一つのsrc以下のディレクトリに実行ファイルを置くことを期待されています
ここではデフォルトで作成された main.rs を見てみる

fn main() {
    println!("Hello, world!");
}

Hello, world! を表示するプログラムになっていることが察せる

では動かしてみる
cargo run を実行することでコンパイルされてmain.rsが実行される


$ cargo run
   Compiling hello_world v0.1.0 (/hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 1.18s
     Running `target/debug/hello_world`
Hello, world!

actix-web のセットアップ

ここからは実際にセットアップしていきます
Cargo.toml に今回使う actix-web を追加する
[dependencies]セクションにプロジェクトに必要な依存関係を追記することができます

[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
+ actix-web = "4"

actix-web のセットアップはこれだけです
ではHollow Worldを表示するように main.rs を修正していきます

use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder};

async fn hello() -> impl Responder {
    HttpResponse::Ok().body("Hello world!")
}

async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new()
            .service(hello)
    })
    .bind(("127.0.0.1", 8080))?
    .run()
    .await
}

簡単なコードですが一応コードを見ていきます
main() では Appインスタンスを作成して hello をルーディングとして設定しています
またHttpServerを 127.0.0.1:8080 を指定して起動しています

hello() は http status を 200番を指定してHello world!を表示しています
あとは cargo run を実行して 127.0.0.1:8080 にアクセスすれば Hello world! と表示されます

はいこれでおしまいです
簡単ですね
ここから機能を作成したりして Rust との親睦を深めていきたいと思います

https://actix.rs/docs/getting-started が分かりやすかったので機能開発等もこちらのドキュメントを参考に進めていきたいと思っています

参考にした記事

https://actix.rs/docs/getting-started
https://qiita.com/yoshii0110/items/6d70323f01fefcf09682

广告
将在 10 秒后关闭
bannerAds