2 unstable releases
new 0.2.0 | Sep 4, 2024 |
---|---|
0.1.0 | Jul 1, 2024 |
#934 in Web programming
139 downloads per month
Used in dsh_sdk
455KB
7.5K
SLoC
DSH Rest API Client
An OpenAPI Spec implementation for the DSH REST API.
Description
This crate is part of the DSH_SDK. It provides a Rust client for the DSH REST API. This client is generated from the OpenAPI specification using Progenitor.
Versions
The versions of this crate are tied to the versions of the OpenAPI spec and the Progenitor version used to generate the client.
DSH Rest API Client: 0.2.0
- OpenAPI spec: 1.8.0
- Progenitor version: 0.7.0
DSH Rest API Client: 0.1.0
- OpenAPI spec: 1.7.0
- Progenitor version: 0.7.0
Goals
This crate provides:
- A client with all methods to call all DSH API endpoints
- Pure code generation from the OpenAPI spec
Non-Goals
This crate does not provide:
- Authentication or authorization to DSH
- Token management
- Functionality to select specific platform/base URL
These goals are provided by the DSH_SDK crate.
Recomended usage
It is recommended to use the Rest Token Fetcher from the dsh_sdk
crate. To do this, add the following to your Cargo.toml file:
[dependencies]
dsh_rest_api_client = "0.2.0"
dsh_sdk = { version = "0.4", features = ["rest-token-fetcher"], default-features = false }
tokio = { version = "1", features = ["full"] }
To use the client in your project:
use dsh_rest_api_client::Client;
use dsh_sdk::{Platform, RestTokenFetcherBuilder};
const CLIENT_SECRET: &str = "";
const TENANT: &str = "tenant-name";
#[tokio::main]
async fn main() {
let platform = Platform::NpLz;
let client = Client::new(platform.endpoint_rest_api());
let tf = RestTokenFetcherBuilder::new(platform)
.tenant_name(TENANT.to_string())
.client_secret(CLIENT_SECRET.to_string())
.build()
.unwrap();
let response = client
.topic_get_by_tenant_topic(TENANT, &tf.get_token().await.unwrap())
.await;
println!("Available topics: {:#?}", response);
}
Changelog
See CHANGELOG.md for all changes per version.
License
See LICENSE for more information on the license for this project.
Copyright (c) Koninklijke KPN N.V.
Dependencies
~7–19MB
~287K SLoC