netbox 0.3.3

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

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let url = std::env::var("NETBOX_URL").unwrap_or_else(|_| "http://localhost:8000".to_string());
    let token = std::env::var("NETBOX_TOKEN")?;
    let mut config = ClientConfig::new(url, token);
    if std::env::var("NETBOX_INSECURE").as_deref() == Ok("1") {
        config = config.with_ssl_verification(false);
    }

    let client = Client::new(config)?;
    let variables = json!({ "limit": 5 });
    let data = client
        .graphql()
        .query(
            "query ($limit: Int!) { devices(limit: $limit) { name } }",
            Some(variables),
        )
        .await?;

    println!("{}", serde_json::to_string_pretty(&data)?);
    Ok(())
}