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客户端

MIT 许可证

31KB
458 代码行

odata-simple-client

此crate提供了一个通过HTTP(S)对OData 3.0 API的Rust接口

要开始使用,构建一个 DataSource,然后创建一个 ListRequestGetRequest,并使用您的 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