5个版本

0.1.4 2024年3月14日
0.1.3 2024年2月19日
0.1.2 2024年2月14日
0.1.1 2024年2月12日
0.1.0 2024年2月12日

过程宏 中排名 1809


用于 trakt-rs

MIT 许可证

21KB
470

trakt-rs

一个针对 Trakt.tv API 的纯Rust库

Crates.io Version docs.rs Crates.io License Rust codecov

Trakt.tv API 文档:https://trakt.docs.apiary.io

使用方法

此库不提供用于发起HTTP(s)请求的客户端。这由用户自行处理。这使用户可以使用任何他们喜欢的HTTP客户端(例如 reqwesthyperisahc 等)以及任何TLS后端(例如 native-tlsrustls 等),以同步或异步方式发起请求。

相反,此库提供一组请求和响应类型,这些类型可以转换为通用 http::Requesthttp::Response 类型。这些类型填充了HTTP请求的全部内容,包括URL、头和正文。然而,用户仍然可以在发送请求之前对其进行修改。

这种方法的优点是用户在发起请求方面具有无限灵活性。他们可以使用任何HTTP客户端、任何TLS后端以及任何请求/响应处理机制。此外,用户在发送请求之前或接收响应之后都可以自由修改请求。

这也意味着此库的依赖关系树更小,因为它不依赖于运行时或HTTP客户端库。

示例

use trakt_rs::{Request, Response};

// Context required for all requests
let ctx = trakt_rs::Context {
    base_url: "https://api.trakt.tv",
    client_id: "client_id",
    oauth_token: None,
};

// Create a request and convert it into an HTTP request
let req = trakt_rs::api::movies::summary::Request {
    id: trakt_rs::smo::Id::Imdb("tt123456".into()),
};
let http_req: http::Request<Vec<u8>> = req.try_into_http_request(ctx).unwrap();

// Send the HTTP request using your preferred HTTP client
let response = http::Response::new(vec![]);

// Convert the HTTP response into a Trakt response
let trakt_response = trakt_rs::api::movies::summary::Response::try_from_http_response(response).unwrap();

println!("Movie: {:?}", trakt_response.0);

许可证:MIT

依赖项

~260–700KB
~17K SLoC