open-library-api-rs 0.1.0

Async Rust client for the Open Library API
Documentation
// v0.0.1
use serde::{Deserialize, Serialize};

/// Response from the generic `GET /query.json` endpoint.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct QueryResponse {
    #[serde(default)]
    pub result: Vec<serde_json::Value>,
}

/// A single resource-history entry (from `?m=history`).
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HistoryEntry {
    #[serde(default)]
    pub key: Option<String>,
    #[serde(default)]
    pub revision: Option<i64>,
    #[serde(default)]
    pub timestamp: Option<String>,
    #[serde(default)]
    pub kind: Option<String>,
    #[serde(default)]
    pub author: Option<serde_json::Value>,
    #[serde(default)]
    pub comment: Option<String>,
    #[serde(default)]
    pub ip: Option<String>,
    #[serde(default)]
    pub machine_comment: Option<String>,
}

/// Response from the `/api/books` bibkey lookup.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BooksApiEntry {
    #[serde(default)]
    pub bib_key: Option<String>,
    #[serde(default)]
    pub info_url: Option<String>,
    #[serde(default)]
    pub preview: Option<String>,
    #[serde(default)]
    pub preview_url: Option<String>,
    #[serde(default)]
    pub thumbnail_url: Option<String>,
    #[serde(default)]
    pub details: Option<serde_json::Value>,
    #[serde(default)]
    pub data: Option<serde_json::Value>,
}