netbox 0.3.3

ergonomic rust client for NetBox 4.x REST API
Documentation
use netbox::{Client, ClientConfig};

fn build_client() -> Result<Client, Box<dyn std::error::Error>> {
    let base_url = std::env::var("NETBOX_URL").unwrap_or_else(|_| "http://localhost:8000".into());
    let token = std::env::var("NETBOX_TOKEN")?;
    let mut config = ClientConfig::new(base_url, token);
    if std::env::var("NETBOX_INSECURE").as_deref() == Ok("1") {
        config = config.with_ssl_verification(false);
    }
    Ok(Client::new(config)?)
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = build_client()?;
    let status = client.status().status().await?;
    let netbox_version = status
        .get("netbox-version")
        .and_then(|value| value.as_str())
        .unwrap_or("<unknown>");
    let workers = status
        .get("rq-workers-running")
        .and_then(|value| value.as_i64())
        .unwrap_or(0);
    println!("netbox-version: {}", netbox_version);
    println!("rq-workers-running: {}", workers);
    Ok(())
}