🔖
【Rust】urlの文字列からパラメータを取得したい
概要
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