5个版本
0.1.6 | 2021年6月10日 |
---|---|
0.1.5 | 2021年6月9日 |
#2 in #coin-gecko
每月 22 次下载
56KB
1.5K SLoC
gecko
一个简单的库,用于访问coingecko的API。
依赖
[dependecies]
tokio = { version = "1", features = ["full"] }
gecko = { version = "0.1.6" }
示例
use gecko;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let gecko_client = gecko::CoinGeckoAPI::default();
let coins_list = gecko::coins::List::required();
let response = gecko_client(&coins_list).await.unwrap();
println!("{:?}", response):
}
注意
测试仅涵盖API端点可访问(200代码)。响应被转换为serde json值,并未测试预期值的正确性。
ps
这是我第一个Rust项目,所以请友好对待 :)
lib.rs
:
gecko
gecko
包提供对coingeckos api的便捷访问。该包的重点在于访问/检索coingecko API端点中的数据,而不是便利性或操作响应/数据。尽管如此,如果不需要原始文本响应,该包具有提供coingeckos API响应的JSON对象的功能。
注意: Coingeckos API每分钟有100次请求的限制。
示例
默认
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let gecko_client = gecko::CoinGeckoAPI::default();
let coins_list = gecko::coins::List::required();
let response = gecko_client.get_json(&coins_list).await.unwrap();
println!("{:?}", response);
Ok(())
}
自定义
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let gecko_client = gecko::CoinGeckoAPI::default();
let mut coins_list = gecko::coins::Info::required("premia".to_string());
coins_list.tickers = false;
let response = gecko_client.get_json(&coins_list).await.unwrap();
println!("{:?}", response["id"]);
Ok(())
}
或者如果您不希望请求对象为可变变量...
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let gecko_client = gecko::CoinGeckoAPI::default();
let coins_list = {
let mut _tmp = gecko::coins::Info::required("premia".to_string());
_tmp.tickers = false;
_tmp
};
let response = gecko_client.get_json(&coins_list).await.unwrap();
println!("{:?}", response["id"]);
Ok(())
}
更多关于CoinGecko API的信息可以在这里找到。Route特质可以被实现,以使结构体能够被[CoinGeckoAPI]使用
依赖
~6–18MB
~259K SLoC