#wine #api #api-bindings #vivino

vivinq

Rust 库,用于查询 Vivino 服务

3 个稳定版本

1.1.2 2024 年 8 月 18 日
1.1.0 2023 年 2 月 10 日
1.0.0 2022 年 5 月 19 日

解析器实现 中排名 592

Download history

每月下载量 115

MIT/Apache

45KB
870

VivinQ:来自 Vivino 数据的 wine 数据库

该项目基于 Python 项目 Viviner

它准备了一个 URL 来查询 Vivinio API。您可以使用任何 HTTP 客户端进行请求。

使用方法

fn main() {
    //get all wines from France and United States
    let pl = vivinq::Payload{country_codes:Some(vec![String::from("fr"), String::from("us")]), min_rating:4.2, ..Default::default()};
    let url: String = vivinq::get_url(&pl);
    // perform your request
}

似乎,您不需要在 HTTP 请求中指定 USER_AGENT,您可以直接发送一个空字符串 User-Agent:

有效载荷在 lib.rs 中定义,参数是可选的

pub struct Payload {
    /// "country_codes[]": "br","fr","us","de", ...
    pub country_codes: Option<Vec<String>,
    /// "food_ids[]": 20,
    pub food_ids: Option<Vec<u16>>,
    /// "grape_ids[]": 3,
    pub grape_ids: Option<Vec<u16>>,
    /// "grape_filter": "varietal",
    pub grape_filter: Option<String>,
    /// "min_rating": 3.7, from 0.0 to 5.0
    pub min_rating: Option<f32>,
    /// "order_by": "ratings_average",
    pub order_by: Option<String>,
    /// "order": "desc", or asc (true)
    pub order: Option<bool>,
    /// "price_range_min": 25,
    pub price_range_min: Option<u32>,
    /// "price_range_max": 100,
    pub price_range_max: Option<u32>,
    /// "region_ids[]": 383,
    pub region_ids: Option<Vec<u32>>,
    /// "wine_style_ids[]": 98,
    pub wine_style_ids: Option<Vec<u16>>,
    /// "wine_type_ids[]": 1,
    /// "wine_type_ids[]": 2,
    pub wine_type_ids: Option<u16>,
}

功能

serde(默认启用)。它允许您使用 serde 反序列化 Vivino JSON。

依赖项

~0.5–1.3MB
~26K SLoC