🔖

【Rust】urlの文字列からパラメータを取得したい

2024/03/08に公開

概要

Rustでurlの文字列をパースする際に、urlのクレートを使うことが多いと思います。今回はurlクレートを使って、パラメータを取得したい場合にどうするかというメモ書きです。

前提

  • 使用したrustcのバージョンは1.76.0、urlのバージョンは2.5.0です。

対応方針

parse query parameters from request in rustのstackoverflowの記事にある通り、query_pairsを使う方法が挙げられます。これでパラメータのリストをMap形式で取得できます。

実装サンプル

query_pairsを使って、url文字列から指定したパラメータだけを取得する実装サンプルを下記に記載します。

let param_value = match Url::parse(input_url).and_then(|u| {
    Ok(u.query_pairs()
        .find(|(k, _)| k == "target_key")
        .and_then(|param| Some(param.1.to_string())))
}) {
    Ok(Some(value)) => value,
    _ => {
        return Err(Error::new("Can not get param")))
    }
};

Discussion