3 个版本
0.1.2 | 2024年6月7日 |
---|---|
0.1.1 | 2024年6月5日 |
0.1.0 | 2023年12月20日 |
在 Web编程 中排名第391
每月下载量 35 次
72KB
973 行
Rust GBFS 语言绑定
Rust 类型,用于解析和处理通用自行车共享数据规范(《GBFS》)数据,确保 Rust 项目的类型安全和代码一致性。
在本库中,大多数 GBFS 规范要求的字段都被标记为 Option
,因为它们可能不会在 GBFS 数据源中始终存在。
提供了一些辅助函数来从 GBFS 数据源获取数据。
安装
要在您自己的项目中使用 gbfs_types
,您需要安装依赖项
cargo add gbfs_types
版本
目前仅支持 GBFS 3.0 版本
示例代码(类型)
use reqwest::Error;
use tokio;
use gbfs_types::v3_0::files::SystemInformationFile;
#[tokio::main]
async fn main() -> Result<(), Error> {
let gbfs_url = "https://example-gbfs-feed/gbfs/3.0/system-information";
let client = reqwest::Client::new();
let response = client.get(url).header("User-Agent", "rust-reqwest").send().await?;
if response.status().is_success() {
let system_information: SystemInformationFile = response.json().await?;
println!("systemInformation version: {}", system_information.version);
println!("systemInformation data: {}", system_information.data.system_id);
}
Ok(())
}
示例代码(辅助函数)
use gbfs_types::v3_0::files::gbfs::GbfsDataFeeds;
use gbfs_types::v3_0::files::{GbfsData, SystemInformationFile};
use reqwest::Error;
use tokio;
use gbfs_types::v3_0::urls::SystemInformationFileUrl;
use gbfs_types::v3_0::GbfsObjects;
#[tokio::main]
async fn main() -> Result<(), Error> {
let gbfs_data: GbfsData = GbfsData {
feeds: vec![
GbfsDataFeeds {
name: "system_information".to_string(),
url: "https://example-gbfs-feed/gbfs/3.0/system-information".to_string(),
},
// ... all other feeds
GbfsDataFeeds{
name: "gbfs_versions".to_string(),
url: "https://example-gbfs-feed/gbfs/3.0/versions".to_string()
}
],
};
let system_information = gbfs_data.get_system_information().await;
match system_information {
Ok(Some(info)) => {
// Successfully retrieved SystemInformationFile
println!("System Information: {:?}", info.data.email);
}
Ok(None) => {
// SystemInformationFile was not present
println!("No system information available.");
}
Err(e) => {
// Handle the error
eprintln!("Error retrieving system information: {}", e);
}
}
Ok(())
}
贡献
我们感谢 Fluctuo 慷慨地提供这个仓库。他们的支持和贡献对我们项目的进步以及社区内的合作至关重要。感谢您对开源的奉献,感谢您为全球开发者赋能。
依赖项
~9–21MB
~343K SLoC