Rustの非同期ライブラリである「tokio」使用して非同期処理でAPIを実行する方法について解説します。
依存関係の設定
非同期処理を行うには、reqwest
とtokio
クレートを使用します。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で高速・効率的な処理をするために重要ですので覚えておきましょう。
0 件のコメント:
コメントを投稿