4 个版本 (2 个重大更改)
0.3.0 | 2022 年 1 月 24 日 |
---|---|
0.2.0 | 2022 年 1 月 11 日 |
0.1.1 | 2022 年 1 月 11 日 |
0.1.0 | 2022 年 1 月 11 日 |
#2340 in 网页开发
39KB
727 行
宝可梦 TCG SDK - Rust
这是宝可梦 TCG SDK 的 Rust 实现。它封装了 pokemontcg.io 的宝可梦 TCG API。
使用方法
配置
[dependencies]
pokemon-tcg-sdk = "0.3.0"
使用 API 密钥
// This method fails for the same reasons a reqwest::ClientBuilder would fail (TLS, system config)
// or if your API key contains invalid characters for a header.
let client = Client::with_api_key("YOUR_API_KEY")?;
卡牌
通过 ID 获取单个卡牌
let client = Client::default();
let card = client.get_card(GetCardRequest::new("base1-1")).await;
match card {
// Card
Ok(c) => println!("{:?}", c),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
通过 q 参数过滤卡牌
let client = Client::default();
let cards = client.search_cards(SearchCardsRequest::new("name:celebi")).await;
match cards {
// Vec<Card>
Ok(c) => println!("{:?}", c),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
// You can also construct a SearchCardsRequest with more parameters
let search_request = SearchCardsRequest {
query: Some(String::from("name:celebi")),
page: Some(10),
page_size: None,
order_by: None,
}
自动翻页卡牌数据
let client = Client::default();
let cards = client.get_all_cards().await;
match cards {
// Vec<Card>
Ok(c) => println!("{:?}", c),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
系列
通过 ID 获取单个系列
let client = Client::default();
let set = client.get_set(GetSetRequest::new("base1")).await;
match set {
// Set
Ok(s) => println!("{:?}", s),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
通过 q 参数过滤系列
let client = Client::default();
let sets = client.search_sets(SearchSetsRequest::new("series:base")).await;
match sets {
// Vec<Set>
Ok(s) => println!("{:?}", s),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
// You can also construct a SearchSetsRequest with more parameters
let search_request = SearchSetsRequest {
query: Some(String::from("series:base")),
page: Some(2),
page_size: None,
order_by: None,
}
自动翻页系列数据
let client = Client::default();
let sets = client.get_all_sets().await;
match sets {
// Vec<Set>
Ok(s) => println!("{:?}", s),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
超级类型
let client = Client::default();
let types = client.get_supertypes().await;
match types {
// Vec<String>
Ok(c) => println!("{:?}", c),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
子类型
let client = Client::default();
let types = client.get_subtypes().await;
match types {
// Vec<String>
Ok(c) => println!("{:?}", c),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
类型
let client = Client::default();
let types = client.get_types().await;
match types {
// Vec<String>
Ok(c) => println!("{:?}", c),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
稀有度
let client = Client::default();
let types = client.get_rarities().await;
match types {
// Vec<String>
Ok(c) => println!("{:?}", c),
// Will be a 'ClientError' enum
Err(e) => println!("{:?}", e),
}
依赖关系
~6–20MB
~279K SLoC