dsh_rest_api_client

Crates.iodsh_rest_api_client
lib.rsdsh_rest_api_client
version0.3.0-rc.1
sourcesrc
created_at2024-07-01 10:39:37.53263
updated_at2024-11-04 11:21:51.945349
descriptionREST API client for KPN Data Services Hub
homepagehttps://www.kpn.com/dsh
repositoryhttps://github.com/kpn-dsh/dsh-sdk-platform-rs
max_upload_size
id1288641
size1,385,201
Arend-Jan (Arend-Jan)

documentation

README

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.3.0-rc.1

Release candidate version as this version is based on to be released OpenAPI spec 1.9.0, which is still under development.

  • OpenAPI spec: 1.9.0
  • Progenitor version: 0.7.0

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.

Commit count: 286

cargo fmt