2 个版本
0.1.1 | 2022年9月25日 |
---|---|
0.1.0 | 2022年9月24日 |
#1642 in 网络编程
41KB
859 行
GarlandTools Rust 绑定/包装器
GarlandTools API 的非官方 Rust 包装器/绑定。
⚠️ 这是一个公共 API。
⚠️ 请不要以任何形式进行垃圾邮件或滥用。
特别感谢 GarlandTools 提供此 API 并保持其更新。
目录
安装
只需将以下内容添加到您的 [dependencies]
部分,在您的 Cargo.toml
文件中。
[dependencies]
garlandtools = "0.1.1
用法
此 API 实现了所有 GarlandTools 端点。
以下是显示所有端点和它们是否有 id 和/或 all 端点的表格。
id 端点表示存在一个唯一的标识符,可用于查询信息。通常是整数。但是,也有 Job
枚举和字符串端点。
all 端点简单地返回该端点的所有数据,以一个巨大的 JSON 文件形式,不需要 id 但需要更多过滤。
所有端点都返回 JSON,解析为 非结构化 serde_json::Value
。通常是 serde_json::Value::Object
或 serde_json::Value::Array
。这对于所有端点都是正确的,但有两个端点返回的是 二进制 PNG(地图和图标)。
以下是完整概述
端点名称 | 具有 id 端点 | 具有 'all' 端点 | 返回 |
---|---|---|---|
成就 | ✅ | ✅ | JSON (serde_json::Value::Object ) |
数据 | ❌ | ✅ | JSON (serde_json::Value::Object ) |
终局装备 | ✅ (Job ) |
❌ | JSON (serde_json::Value::Object ) |
命运 | ✅ | ✅ | JSON (serde_json::Value::Object ) |
钓鱼 | ❌ | ✅ | JSON (serde_json::Value::Object ) |
图标 | ✅ (str ) |
❌ | 二进制 PNG |
实例 | ✅ | ✅ | JSON (serde_json::Value::Object ) |
物品 | ✅ | ❌ | JSON (serde_json::Value::Object ) |
任务 | ✅ | ✅ | JSON (serde_json::Value::Object ) |
升级装备 | ✅ (Job ) |
❌ | JSON (serde_json::Value::Object ) |
地图 | ✅ (str ) |
❌ | 二进制 PNG |
怪物 | ✅ | ✅ | JSON (serde_json::Value::Object ) |
节点 | ✅ | ✅ | JSON (serde_json::Value::Object ) |
NPC | ✅ | ✅ | JSON (serde_json::Value::Object ) |
任务 | ✅ | ✅ | JSON (serde_json::Value::Object ) |
搜索 | ✅ (str ) |
❌ | JSON (serde_json::Value::Array ) |
状态 | ✅ | ✅ | JSON (serde_json::Value::Object ) |
要使用 API,首先初始化 GarlandTools
类
use garlandtools::GarlandTools;
let garlandtools = GarlandTools::default();
可选地,您可以指定特定的语言
use garlandtools::{GarlandTools, Language};
// For English language (default):
let garlandtools = GarlandTools::new(Language::English);
// For German language:
let garlandtools = GarlandTools::new(Language::German);
// For French language:
let garlandtools = GarlandTools::new(Language::French);
// For Japanese language:
let garlandtools = GarlandTools::new(Language::Japanese);
每个端点都在 GarlandTools
类中实现了其自己的功能。
只需调用它们并供应参数(如果需要的话)。比如说,我们想查询一个特定项目,我们知道项目 ID 是 2
。
我们只需要做的是
// 0. Imports
use garlandtools::GarlandTools;
// 1. Initialize Wrapper/Binding
let garlandtools = GarlandTools::default();
// 2. Query item
let item_id = 2;
let item = garlandtools.item(item_id).await.unwrap(); // Unsafe! Check if the `Result` before unwrapping.
// 3. Do something with it!
println!("{:?}", item);
还有一个额外的 search
函数来提交搜索查询。 但是,请在绝对必要且不知道某个 ID 的情况下使用此端点。
致谢
我想感谢 GarlandTools 和 GarlandTools NodeJS 项目,没有它们,这一切都不可能实现。
版本
版本 | 支持 | 描述 |
---|---|---|
v0.1.1 | ✅ | 使用更简单,有很多改进! |
v0.1.0 | ✅ | 初始版本。工作正常,但更难操作。 |
依赖
~3–18MB
~218K SLoC