Crates.io | garlandtools |
lib.rs | garlandtools |
version | 0.1.1 |
source | src |
created_at | 2022-09-24 22:55:31.469981 |
updated_at | 2022-09-25 17:56:38.325592 |
description | A library for interacting with the GarlandTools API |
homepage | |
repository | https://github.com/Sakul6499/Rust-GarlandTools |
max_upload_size | |
id | 673305 |
size | 42,856 |
Unofficial Rust wrapper/bindings for GarlandTools API.
⚠️ This is a public API.
⚠️ Please do not spam or abuse it in any shape or form.
Special thanks to GarlandTools for providing this API and keeping it updated.
Simply add the following to your [dependencies]
section in your Cargo.toml
.
[dependencies]
garlandtools = "0.1.1
All GarlandTools Endpoints are implemented in this API.
Below is a table showing all endpoints and whether they have an id and/or all endpoint.
An id endpoint means there is a unique identifier that can be used to query information.
Commonly an integer. However, there is also a Job
enum and string endpoints.
An all endpoint simply returns all data of that endpoint in a massive JSON file, no id needed but requires more filtering.
All endpoints return JSON which is parsed into unstructured serde_json::Value
.
Usually either serde_json::Value::Object
or serde_json::Value::Array
.
This is true for all, but two endpoints which return a binary PNG instead (map and icons).
A full overview is below:
Endpoint Name | Has id endpoint | Has 'all' endpoint | Returns |
---|---|---|---|
Achievement | ✅ | ✅ | JSON (serde_json::Value::Object ) |
Data | ❌ | ✅ | JSON (serde_json::Value::Object ) |
Endgame Gear | ✅ (Job ) |
❌ | JSON (serde_json::Value::Object ) |
Fate | ✅ | ✅ | JSON (serde_json::Value::Object ) |
Fishing | ❌ | ✅ | JSON (serde_json::Value::Object ) |
Icon | ✅ (str ) |
❌ | Binary PNG |
Instance | ✅ | ✅ | JSON (serde_json::Value::Object ) |
Item | ✅ | ❌ | JSON (serde_json::Value::Object ) |
Leve | ✅ | ✅ | JSON (serde_json::Value::Object ) |
Leveling Gear | ✅ (Job ) |
❌ | JSON (serde_json::Value::Object ) |
Map | ✅ (str ) |
❌ | Binary PNG |
Mob | ✅ | ✅ | JSON (serde_json::Value::Object ) |
Node | ✅ | ✅ | JSON (serde_json::Value::Object ) |
NPC | ✅ | ✅ | JSON (serde_json::Value::Object ) |
Quest | ✅ | ✅ | JSON (serde_json::Value::Object ) |
Search | ✅ (str ) |
❌ | JSON (serde_json::Value::Array ) |
Status | ✅ | ✅ | JSON (serde_json::Value::Object ) |
To use the API, first initialize the GarlandTools
class:
use garlandtools::GarlandTools;
let garlandtools = GarlandTools::default();
Optionally, you can specify a specific language:
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);
Each endpoint has it's own function implemented in the GarlandTools
class.
Simply call them and supply parameters if needed.
Say we want to query a specific item and we know the item id is 2
.
All we need to do is:
// 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);
There is an additional search
function to submit a search query.
However, please use this endpoint only if absolutely necessary and you don't know a certain ID.
I want to credit GarlandTools and GarlandTools NodeJS project without which this wouldn't be possible.
Version | Supported | Description |
---|---|---|
v0.1.1 | ✅ | Much easier to use, lots of improvements! |
v0.1.0 | ✅ | Initial version. Works fine, but is harder to work with. |