#wrapper #api-wrapper #gw2 #api-bindings #api

gw2api

A sort-of well-documented and WIP wrapper over the Guild Wars 2 API

1 unstable release

0.2.0 Jun 8, 2020

#4 in #gw2

Apache-2.0 OR MIT

215KB
5.5K SLoC

WIP gw2api

Build Status License:MIT License:Apache-2.0 codecov

gw2api is a WIP wrapper over the official Guild Wars 2 API written in Rust using ureq as the underlying request maker.

use gw2api::client::Client;
use gw2api::v1::build::Build;

let client = Client::new();
let build = Build::get_build(&client).unwrap();
println!("Current build id: {}", build.id());

Currently supported endpoints:

  • Endpoints
    • V2
      • Account
        • Bank (Auth)
        • Dyes (Auth)
        • Materials (Auth)
        • Skins (Auth)
        • Characters (Auth)
        • Shared Inventory (Auth)
      • Achievements
        • Achievements
        • Achievements Daily
        • Achievement Groups
        • Achievement Categories
      • Commerce
        • Listings
        • Echange
        • Prices
        • Transactions (Auth)
      • Guilds
        • Guild Upgrades
        • Guild Permissions
        • Guild Members (Auth Guild Leader)
        • Guild Ranks (Auth Guild Leader)
        • Guild Stash (Auth Guild Leader)
        • Guild Treasury (Auth Guild Leader)
        • Log (Auth Guild Leader)
        • Emblems
        • Teams
      • PvP
        • Amulets
        • Heroes
        • Stats (Auth)
        • Games (Auth)
        • Ranks (Auth)
        • Standings (Auth)
        • Seasons
      • Items
        • Recipes
          • Search
        • Items
        • Skins
      • World vs World
        • Matches
        • Objectives
      • Game Mechanics
        • Traits
        • Specializations
      • Map Information
        • Continents
        • Maps
      • Misc
        • Build
        • Colors
        • Currencies
        • Quaggans
        • Worlds
        • Minis
        • Tokeninfo
    • V1
      • Build
      • Colors
      • Continents
      • Event details
      • Event names (DISABLED)
      • Events (DISABLED) - won't fix
      • Files
      • Guild details
      • Item details
      • Items
      • Map floor
      • Map names
      • Maps
      • Recipe details
      • Recipes
      • Skin details
      • Skins
      • World names
      • WvW (returns 404/503 errors if requested, directly request the sub-endpoints below)
        • Match details
        • Matches
        • Objective names

Q&A

Q: Y u do dis?!

A: There simply didn't exist a fully functional API wrapper for the API, which I needed. It's also a good learning experience in how to write wrappers, planning out project structure and implementing tests. All in all; yay, I spent way too much time on this. (╥_╥)

Shoutouts

  • tyria-rs - where I stole some of the project structure from. I would have used this instead if it were complete.

Dependencies

~2.7–4MB
~107K SLoC