-
Notifications
You must be signed in to change notification settings - Fork 1
Project goals
The Guild Wars 2 API is a network dependency. There are many things to consider when working with out-of-process dependencies: availability and interoperability just to name a few. Abstracting away the network is difficult and unmarshalling objects from JSON text is not a well-defined engineering problem.
Writing code to fetch data from an HTTP API is easy to do but hard to do right. Many programmers quickly settle for something that works on their machine, without consideration for technical aspects that can lead to failures.
The goal of GW2SDK is to solve at least the interoperability problem:
- By providing methods to fetch the data
- By returning data structures that are easy to consume
- By converting HTTP errors to typed exceptions
- By always tracking schema changes and providing new packages accordingly
In other words, it allows you to access the Guild Wars 2 API with less code and more confidence.
My personal definition of Done includes:
- Support the latest schema version of all active API endpoints
- Support reading data from the Mumble Link protocol on Windows
Currently not in scope (subject to change)
- Pulling data from the Wiki API or other third-party APIs (help needed)
- Reading data from the Arcdps bridge (help needed)
- Reading bitmaps from the Logitech LCD API (help needed)
Forever out of scope: any code that violates the ToS like reverse engineering game files or process memory.
GW2SDK attempts to hide the transport protocol without pretending there is no transport layer. For example: if the API is unreachable, you will get an exception to indicate that there is a network problem.