Entwickler

Entwickler-Tracker: Änderungen an der API (Update 11./ 13. Juni)

Daniel Snider hat im englischen Forum Änderungen an der Schematik des GW2 API aufgeführt. Das Ziel der kürzlichen Änderungen, die Snider durchführte, ist es fehlende Daten zu verringern. Diese Anpassungen wirken sich vorallem auf der Entwicklerseite von externen Anwendungen für Guild Wars 2 aus.

Änderungen an der API

Update: 13. Juni

In dieser Aktualisierung hat Snider 2 fehlende Heimatknoten, einige Extras und den letzten Reittier-Skin ergänzt.

Ebenso wurde ein Trio erschaffen, indem /v2/stories und /v2/stories/seasons um den Endpunkt /v2/quests vervollständigt wurden. Damit ist ein genauerer Detailgrad der Persönlichen Geschichte als Abfrage möglich. Desweiteren wurde die Möglichkeit geschaffen, den Fortschritt auch für einzelne Charaktere abzufragen, indem der Endpunkt
/v2/characters/:id/quests integriert wurde.

  • /v2/novelties um fehlende Daten ergänzt.
    /v2/mounts/skins um fehlende Daten ergänzt.
    /v2/quests und /v2/characters/:id/quests integriert.

Update: 11. Juni

Mit diesem Update hat Daniel Snider einen Endpunkt integriert, der die ganzen Extras (Spielzeuge, Stühle, Lenkdrachen, usw.) zur Abfrage bereitstellt.

  • /v2/novelties ist jetzt verfügbar mit allen Extras.
  • /v2/account/novelties zeigt die freigeschalteten Extras eines Accounts.

Update: 21. Mai

Snider wurde gefragt, ob er die Änderungen am Schema zur Verfügung stellen kann.

Absofort können unter unter api.guildwars2.com/v2.json Änderungen eingesehen werden, wenn darauf mit dem kürzlich eingeführten Schema zugegriffen wird.

Update: 20. Mai

Snider hat eine Unterkategorie der API-Schlüssel implementiert.

  • /v2/createsubtoken Endpunkt hinzugefügt

Snider sagt selbst, dass die Anwendungsmöglichkeiten recht begrenzt sind. Sein Aussage mit App1 und App2 sieht folgendermaßen aus: App1 hat volle Rechte wegen des hinterlegten Keys und kann an App2 einen eingeschränkten, zeitlich begrenzten Subtoken weitergeben.

Beispiel:

Spieler X hat auf gw2efficiency (App1) einen API-Key mit allen Rechten hinterlegt. App2 wäre ein Analyse-Tool für die Garderobe. In dem Fall würde gw2efficiency beispielsweise einen Link zum Tool (App2) eingebettet haben, aber mit einem Subtoken, der nur Zugriff auf den Endpunkt /v2/account/skins erlaubt.

Update: 15. Mai

  • /v2/achievements/daily und /v2/achievements/daily/tomorrow zeigen access_requirement mit product und condition Option an.
  • product ist entweder "HeartOfThorns" oder "PathOfFire".
  • condition ist entweder HasAccess oder NoAccess.

Update: 8. April

Endpunkte hinzugefügt:

  • /v2/worldbosses und /v2/account/worldbosses
  • /v2/dailycrafting und /v2/account/dailycrafting
  • /v2/mapchests und /v2/account/mapchests
  • /v2/account/luck

Snider hat neue Endpunkte der Version 2 der GW2API hinzugefügt. Absofort lassen sich erledigte Weltenbosse, Materialien wie Deldrimorbarren und Kartentruhen der HoT-Karten über Tools tracken.
Ebenso wurde ein Endpunkt für Accountweites Glück hinzugefügt.

Änderungen an der API

  • Verschiedene Endpunkte unter v2/account und v2/characters geben jetzt einen Last-Modified Header aus. Anfragen respektieren If-Modified-Requests und werden notfalls einen 304 Not Modified ausgeben.
  • v2/account, v2/characters/:id haben ein last_modified Feld im jetztigen Schema (siehe unten)
    v2/nodes ist jetzt unter v2/home/nodes. Alter Endpunkt ist weiter verfügbar.
    v2/cats ist jetzt unter v2/home/cats. Alter Endpunkt ist weiter verfügbar.
    v2/account/home/nodes enthält jetzt alle Knoten inklusive des Gartenbeetes.
    v2/account/home/cats wurde verbessert und ähnelt dem Schema anderer Endpunkte.

Was ändert sich für den normalen Spieler, der Anwendungen wie GW2Efficiency verwendet? Die Änderungen betreffen nur Anfragen von Anwendungen wie eben GW2Efficiency an die API-Schnittstelle. Das heißt für den normalen Nutzer solcher, ändert sich nichts.

Request-Versionen für Entwickler

Snider hat 2 Beispiele für Anfragen bereitgestellt:

X-Schema-Version

fetch('https://api.guildwars2.com/v2/account', {headers: {
'X-Schema-Version': "2019-02-21T00:00:00Z",
'Authorization': `Bearer ${my_api_key}`}
})
.then((r) => r.json())
.then((data) => console.log(data.last_modified));

v query param

fetch(`https://api.guildwars2.com/v2/account?v=latest&access_token=${my_api_key}`)
.then((r) => r.json())
.then((data) => console.log(data.last_modified));

Für die Anwendung empfiehlt Snider eine statische Anfrage, so bleibt die App bei einer Änderung der GW2 API unbetroffen und läuft weiterhin. Wer lokal programmiert kann auf die Anfrage-Version mit latest zurückgreifen.

Desweiteren freut er sich über eure Gedanken diesbezüglich.

[crp]

Aouglas

Aouglas (ich mag "Per Anhalter durch die Galaxis"), aber ihr könnt mich Jojo nennen, Jahrgang '94, erste Games "Duke Nukem" und "Age of Empires" und seitdem PC-Spieler. Nebenbei noch Student. Und stolzer Double Pistol Deadeye mit Siegeln-Spieler!

4 Kommentare

    1. Da ist mir tatsächlich beim aktualisieren des Tracker ein kompletter Block gelöscht worden. Ursprüngliche News hat auch etwas mit den Katzen der Heimatinstanz zu tun. 🙂 Deshalb Simon, die Fraktalkatze.

Schreibe einen Kommentar

Schaltfläche "Zurück zum Anfang"