#http-client #http #api #api-bindings

kitsu

为 Kitsu API 提供非官方的 Rust HTTP 客户端实现

3 个不稳定版本

使用旧的 Rust 2015

0.2.0 2018年4月8日
0.1.1 2018年3月27日
0.1.0 2018年1月16日

#318 in #http-client

ISC 许可证

77KB
826

kitsu.rs

一个非官方的 Rust 库,作为 Kitsu API 的包装器,提供异步 hyper (v0.11) 和同步 reqwest (v0.8) 的实现。

注意:该库支持从 API 获取数据,但当前不支持认证请求。

编译功能

  • hyper-support:支持编译带有 hyper 的功能
  • reqwest-support:支持编译带有 reqwest 的功能(默认)

安装

将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
kitsu = "0.2"

启用 hyperreqwest 的支持

[dependencies.kitsu]
version = "0.2"
features = ["hyper-support", "reqwest-support"]

启用 hyper 但不启用 reqwest 的支持

[dependencies.kitsu]
version = "0.2"
default-features = false
features = ["hyper-support"]

示例

使用 reqwest,使用用户输入的字符串搜索动漫

extern crate kitsu;
extern crate reqwest;

use kitsu::KitsuReqwestRequester;
use reqwest::Client;
use std::io::{self, Write};

fn main() {
    // Create the reqwest Client.
    let client = Client::new();

    // Read an anime name to search for from the users input.
    let mut input = String::new();
    print!("Enter an anime name to search for:\n>");
    let _ = io::stdout().flush();
    io::stdin().read_line(&mut input).expect("Error reading input");
    let input_trimmed = input.trim();

    // Search for the anime.
    let anime = client.search_anime(|f| f.filter("text", input_trimmed))
        .expect("Error searching for anime");

    // Print out the response of the request.
    if let Some(ref picked) = anime.data.first() {
        let title = &picked.attributes.canonical_title;

        if let Some(ref rating) = picked.attributes.average_rating {
            println!("Found Anime: {} - {}", title, rating);
        } else {
            println!("Found Anime: {} - ??", title);
        }
    } else {
        println!("No Anime Found.");
    }
}

有关更多示例,请参阅 示例文件夹

许可证

ISC。查看完整许可证 此处

依赖项

~0.8–12MB
~142K SLoC