3 个版本

0.2.2 2023年9月26日
0.2.1 2022年4月15日
0.2.0 2021年12月25日
0.1.6 2021年12月22日

#21 in #queries

23 monthly downloads

MIT/Apache

59KB
1.5K SLoC

VoteSmart

围绕 VoteSmart REST API 的 Rust 包装器

文档

https://docs.rs/votesmart/latest/votesmart/

快速开始

要开始使用,您需要在程序中实例化一个 VoteSmartProxy。您有两个选择

use votesmart::VotesmartProxy
// If you have a `VOTESMART_API_KEY` set in your .env or environment
let proxy = VotesmartProxy::new().unwrap();
// If you want to pass in the API key from elsewhere
let proxy = VotesmartProxy::new_from_key(your_api_key);

从那里,VoteSmart 的每个对象都是从您刚刚实例化的代理中命名空间的,因此您可以使用以下查询运行

let candidate_id = 53279 // Joe Biden
let response = proxy.candidate_bio().get_detailed_bio(candidate_id).await?;
if response.status().is_success() {
    let json: serde_json::Value = response.json().await?;
    // Do whatever you want with this data
} else {
    panic!("Something went wrong fetching Joe Biden's bio");
}

类型

这是一个正在进行中的工作,但最终所有 VoteSmart 对象的响应都将被输入到它们自己的结构体中。请参阅 src/types 作为示例。遗憾的是,一些 VoteSmart 响应的类型并不总是一致的,这取决于您查询的内容,因此某些模糊字段可以类型化为 serde_json::Value

依赖关系

~10–26MB
~428K SLoC