Skip to main content

Crate dna_rs

Crate dna_rs 

Source
Expand description

§dna-rs

Async Rust client for the Domain Name API REST gateway.

§Quick start

use dna_rs::DnaClient;

#[tokio::main]
async fn main() -> Result<(), dna_rs::DnaError> {
    let client = DnaClient::new("YOUR-RESELLER-UUID", "YOUR-API-TOKEN")?;
    let balance = client.get_current_balance("USD").await?;
    println!("Balance: {} {}", balance.balance, balance.currency_name);
    Ok(())
}

§Module layout

PathContents
modelsAll request / response types, grouped by domain
ops/ (private)impl DnaClient blocks, one file per API domain
errorDnaError and DnaResult
http (private)Low-level reqwest transport

§Environments

ConstructorEndpoint
DnaClient::newProduction
DnaClient::new_oteOTE / sandbox
DnaClient::with_urlCustom URL

§Error Handling

All methods return DnaResult<T> which is Result<T, DnaError>.

use dna_rs::{DnaClient, DnaError};

match client.get_reseller_details().await {
    Ok(d)                                    => println!("{}", d.name),
    Err(DnaError::Api { code, message, .. }) => eprintln!("[{code}] {message}"),
    Err(e)                                   => eprintln!("{e}"),
}

Re-exports§

pub use error::DnaError;
pub use error::DnaResult;

Modules§

error
models
Types are grouped by domain:

Structs§

DnaClient
Async REST client for the Domain Name API.

Constants§

URL_OTE
OTE (test/sandbox) API base URL.
URL_PROD
Production API base URL.