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
21KB
470 行
trakt-rs
一个针对 Trakt.tv API 的纯Rust库
Trakt.tv API 文档:https://trakt.docs.apiary.io
使用方法
此库不提供用于发起HTTP(s)请求的客户端。这由用户自行处理。这使用户可以使用任何他们喜欢的HTTP客户端(例如 reqwest
、hyper
、isahc
等)以及任何TLS后端(例如 native-tls
、rustls
等),以同步或异步方式发起请求。
相反,此库提供一组请求和响应类型,这些类型可以转换为通用 http::Request
和 http::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