[Rust] 非同期でAPIを実行する

2024年3月23日土曜日

Rust

t f B! P L

RUST

Rustの非同期ライブラリである「tokio」使用して非同期処理でAPIを実行する方法について解説します。

依存関係の設定

非同期処理を行うには、reqwesttokioクレートを使用します。reqwestは非同期HTTPクライアントで、tokioは非同期ランタイムです。これらのクレートをプロジェクトに追加するために、Cargo.tomlファイルに以下の依存関係を記述します。

[dependencies]
reqwest = { version = "0.11.4", features = ["json"] }
tokio = { version = "1", features = ["full"] }

APIリクエストを非同期に実行する方法

次に、zip cloudの郵便番号検索APIを使って、郵便番号から住所を非同期に取得するサンプルコードを見ていきます。このAPIは、指定された郵便番号に対する住所情報をJSON形式で返すウェブサービスです。

以下のサンプルコードでは、tokio::mainマクロを使用して非同期のメイン関数を定義しています。reqwest::get関数を呼び出してAPIにリクエストを送り、.awaitを使って非同期にレスポンスを待ち受けます。レスポンスが返ってきたら、.text()メソッドを使用してレスポンスボディをテキストとして取得し、標準出力に表示しています。

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {

    let resp = reqwest::get("https://zipcloud.ibsnet.co.jp/api/search?zipcode=1000002")
        .await?
        .text()
        .await?;
    println!("{resp:#?}");

    Ok(())
}

まとめ

以上がRustで非同期処理を使ってAPIを実行する基本的な方法です。
非同期プログラミングは、Rustで高速・効率的な処理をするために重要ですので覚えておきましょう。

スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ