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