use reqwest;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();
let api_url = "http://localhost:8580";
let api_token = "sk_live_your_token_here";
let database = "main";
let response = client
.get(format!("{}/v1/databases", api_url))
.header("Authorization", format!("Bearer {}", api_token))
.send()
.await?;
if response.status().is_success() {
let databases: serde_json::Value = response.json().await?;
println!("Available databases:");
println!("{}", serde_json::to_string_pretty(&databases)?);
}
let response = client
.get(format!("{}/v1/databases/{}/tables", api_url, database))
.header("Authorization", format!("Bearer {}", api_token))
.send()
.await?;
if response.status().is_success() {
let tables: serde_json::Value = response.json().await?;
println!("\nTables in '{}' database:", database);
println!("{}", serde_json::to_string_pretty(&tables)?);
}
let response = client
.get(format!("{}/v1/databases/{}/schema", api_url, database))
.header("Authorization", format!("Bearer {}", api_token))
.send()
.await?;
if response.status().is_success() {
let schema: serde_json::Value = response.json().await?;
println!("\nDatabase schema for '{}':", database);
println!("{}", serde_json::to_string_pretty(&schema)?);
}
Ok(())
}