// Created on savesnippets.com ยท https://savesnippets.com/eAtOc5NrPeKrye use serde::{Deserialize, Serialize}; #[derive(Serialize)] struct NewUser<'a> { name: &'a str, email: &'a str } #[derive(Deserialize, Debug)] struct CreatedUser { id: u64, name: String, email: String } #[tokio::main] async fn main() -> Result<(), Box> { let client = reqwest::Client::new(); let resp = client.post("https://api.example.com/users") .bearer_auth(std::env::var("API_TOKEN")?) .json(&NewUser { name: "Alice", email: "a@x.com" }) .send().await?; println!("status: {}", resp.status()); let created: CreatedUser = resp.error_for_status()?.json().await?; println!("{created:#?}"); Ok(()) }