Rust
[dependencies]
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
use reqwest::header::{HeaderMap, HeaderValue, CONTENT_TYPE};
use serde::Deserialize;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
#[derive(Deserialize)]
struct Book {
title: String,
author: String,
}
let url = "https://api.promptjoy.com/api/mVMCpq";
let api_key = env::var("PROMPTJOY_API_KEY").unwrap();
let mut headers = HeaderMap::new();
headers.insert("x-api-key", HeaderValue::from_str(&api_key).unwrap());
headers.insert(CONTENT_TYPE, HeaderValue::from_static("application/json"));
let client = reqwest::Client::new();
let res = client.post(url)
.headers(headers)
.json(&serde_json::json!({"query": "your_search_term"}))
.send()
.await?;
let books: Vec<Book> = res.json().await?;
for book in books {
println!("Title: {}, Author: {}", book.title, book.author);
}
Ok(())
}
Last updated