// Created on savesnippets.com · https://savesnippets.com/73gsrGOgOaJuxI // Cargo.toml: // reqwest = { version = "0.12", features = ["json"] } // serde = { version = "1", features = ["derive"] } // tokio = { version = "1", features = ["full"] } use serde::Deserialize; #[derive(Deserialize, Debug)] struct User { login: String, name: Option, public_repos: u32, } #[tokio::main] async fn main() -> Result<(), reqwest::Error> { let user: User = reqwest::Client::new() .get("https://api.github.com/users/torvalds") .header("User-Agent", "myapp/1.0") // required by GitHub API .send().await? .error_for_status()? // 4xx/5xx → Err .json().await?; println!("{user:#?}"); Ok(()) }