6个版本
0.2.6 | 2023年1月14日 |
---|---|
0.2.5 | 2023年1月14日 |
0.2.4 | 2022年6月13日 |
0.2.2 | 2021年11月17日 |
#260 in HTTP客户端
31KB
458 代码行
odata-simple-client
此crate提供了一个通过HTTP(S)对OData 3.0 API的Rust接口
要开始使用,构建一个 DataSource
,然后创建一个 ListRequest
或 GetRequest
,并使用您的 DataSource
进行 fetch
/fetch_paged
以下是一个完整示例,该示例从 丹麦议会的 OData API获取单个 Dokument
use hyper::{Client, client::HttpConnector};
use hyper_openssl::{HttpsConnector};
use odata_simple_client::{DataSource, GetRequest};
use serde::Deserialize;
#[derive(Deserialize)]
struct Dokument {
titel: String,
}
// Construct a Hyper client for communicating over HTTPS
let client: Client<HttpsConnector<HttpConnector>> =
Client::builder().build(HttpsConnector::<HttpConnector>::new().unwrap());
// Set up our DataSource. The API is reachable on https://oda.ft.dk/api/
let datasource = DataSource::new(client, "oda.ft.dk", Some(String::from("/api"))).unwrap();
// The tokio_test::block_on call is just to make this example work in a rustdoc example.
// Normally you would just write the enclosed code in an async function.
tokio_test::block_on(async {
let dokument: Dokument = datasource.fetch(
GetRequest::new("Dokument", 24)
).await.unwrap();
assert_eq!(dokument.titel, "Grund- og nærhedsnotat vedr. sanktioner på toldområdet");
});
上述示例对多个crate有要求。请参阅 Cargo.toml
文件以获取列表。
依赖项
~5–14MB
~157K SLoC