5 个版本
0.1.4 | 2021年7月1日 |
---|---|
0.1.3 | 2021年6月25日 |
0.1.2 | 2021年6月3日 |
0.1.1 | 2021年6月3日 |
0.1.0 | 2021年6月1日 |
#209 in #api-wrapper
14KB
125 行
jokeapi_rs
Rust 对 JokeAPI 的包装
获取一个笑话
use jokeapi_rs::Joke;
fn main() {
println!("{}", Joke::new().fetch().joke());
}
获取特定类型的笑话
类型可以是 "single" 或 "twopart"
use jokeapi_rs::Joke;
fn main() {
println!("{}", Joke::new().of_type("single").fetch().joke());
}
获取属于特定类别的笑话
use jokeapi_rs::Joke;
fn main() {
println!(
"{}",
Joke::new()
.categories(
["programming", "spooky"]
.iter()
.map(|x| x.to_string())
.collect()
)
.fetch()
.joke()
)
}
获取包含所有字段的数据结构
use jokeapi_rs::structs::joke::Data;
use jokeapi_rs::structs::joke::DataKind;
use jokeapi_rs::Joke;
fn main() {
let res: Data = Joke::new()
.of_type("single")
.categories(
["programming", "pun"]
.iter()
.map(|x| x.to_string())
.collect(),
)
.blacklist(["sexist", "nsfw"].iter().map(|x| x.to_string()).collect())
//.safe() // Uncomment to enable safe mode
.fetch();
// Get the joke
// .joke() method on res does the following for you
match res.kind.clone() {
DataKind::TwoPart { setup, delivery } => {
println!("{}\n{}", setup, delivery)
}
DataKind::Single { joke } => println!("{}", joke),
}
// Access all the json fields
println!("{:#?}", res);
}
依赖
~6–18MB
~274K SLoC