Hallo liebe alle,
Diese Übersicht ist auch über den Kurzlink https://lnk.lss-manager.de/apis erreichbar, welcher gerne verwendet und geteilt werden darf.
um wieder eine Übersicht über die aktuell verfügbaren APIs zu haben und auch ein paar nützliche verfügbare Schnittstellen zu nennen, die vielleicht für den ein oder anderen Use-Case praktisch sein könnten, hier mal eine Übersicht!
Bitte denkt bei der Verwendung der Schnittstellen daran, diese fair zu nutzen, auch wenn es keine offiziellen Regeln gibt. Daraus ergeben sich folgende Faustregeln:
- Sinnvolles Caching wo möglich
- Zwischenspeichern von API-Ergebnissen (Standards und Konventionen für Scripte; kann bei größeren Accounts derzeit zu Problemen führen, eine bessere Möglichkeit via indexedDB ist in Arbeit)
- Anfragen nur wenn nötig machen
- Kein Anfragen-Spam (Mit der nächsten Anfrage warten, bis die vorherige fertig ist, mind. jedoch 100 ms)
- Datensparsamkeit: Benötige ich tatsächlich die gesamte Fahrzeug-API oder reichen vlt. 2-3 Fahrzeuge oder die Fahrzeuge eines Gebäudes? => Das sind zwar ggf. mehr Anfragen, aber es müssen weniger Daten zusammengetragen und übertragen werden
Bei größeren Accounts kann es aufgrund der enormen Datenmengen insb. bei der Fahrzeuge- und bei der Gebäude-API zu Timeouts kommen. Hier lohnt es sich dann, die V2-API zu verwenden, wo immer diese existiert. Die V2-API ist zwar etwas langsamer, als die V1-API / Standard-API, dafür hat sie ein Paging drin, d. h. die Zahl der ausgegebenen Elemente lässt sich über den Query-Parameter limit steuern. Das zurückgegeben JSON enthält result (Die angeforderten Daten) und paging (Informationen über diese Seite und links zur vorherigen und nächsten Seite, wenn vorhanden).
Alle APIs sind in allen Sprachversionen des Spiels verfügbar.
🔏: Diese API ist nur erreichbar, wenn man eingeloggt ist (=> Cookies mit in der Anfrage schicken, wenn CORS)
🔓️: Diese API ist öffentlich verfügbar und erfordert nicht, eingeloggt zu sein
{id}: Soll andeuten, dass hier ein dynamisches URL-Element erforderlich ist. In der Regel ist das die ID des gewünschten Elements (Fahrzeug, Gebäude, AAO, etc.)
Offizielle APIs des Spiels
Diese APIs sind dafür da, von Scripten und Zusatzprogrammen genutzt zu werden. Daher werden diese auch wenn möglich vom Team nicht in einer Form geändert, die diese Tools durcheinander bringen würde.
Ein mehr oder weniger aktuell gehaltener Changelog findet sich unter https://www.leitstellenspiel.de/api-infos.
Alle APIs sind reine Lese-APIs und unterstützen daher nur GET-Requests. Es gibt keine Schreibe-APIs.
🔏 Fahrzeuge: https://www.leitstellenspiel.de/api/vehicles bzw. neu: https://www.leitstellenspiel.de/api/v2/vehicles
🔏 Einzelnes Fahrzeug: https://www.leitstellenspiel.de/api/vehicles/{id} bzw. neu: https://www.leitstellenspiel.de/api/v2/vehicles/{id}
🔏 Kilometerstände der Fahrzeuge: https://www.leitstellenspiel.de/api/v1/vehicle_distances
🔏 FMS-Zusammenfassung: https://www.leitstellenspiel.de/api/vehicle_states
🔏 Ausrüstung (sowas wie Rollcontainer-Module & Winden): https://www.leitstellenspiel.de/api/equipments
🔏 Einzelne Ausrüstung (sowas wie Rollcontainer-Module & Winden): https://www.leitstellenspiel.de/api/equipments/{id}
🔏 Gebäude: https://www.leitstellenspiel.de/api/buildings
🔏 Einzelnes Gebäude: https://www.leitstellenspiel.de/api/buildings/{id}
🔏 Fahrzeuge in einem Gebäude: https://www.leitstellenspiel.de/api/buildings/{id}/vehicles bzw. neu: https://www.leitstellenspiel.de/api/v2/buildings/{id}/vehicles
🔏 Verbandsgebäude (Gebäude, die aus der Verbandskasse gebaut wurden): https://www.leitstellenspiel.de/api/alliance_buildings
🔏 Einzelnes Verbandsgebäude: https://www.leitstellenspiel.de/api/alliance_buildings/{id}
🔏 Verbands-Info: https://www.leitstellenspiel.de/api/allianceinfo
🔏 Credits-Info: https://www.leitstellenspiel.de/api/userinfo (Aus Gründen der Rückwärtskompatibilität auch weiterhin unter dem alten Endpunkt /credits zu finden)
🔏 Einstellungen: https://www.leitstellenspiel.de/api/settings
🔏 Eigene Lehrgänge: https://www.leitstellenspiel.de/api/schoolings
🔏 Verbandslehrgänge (Im Verband freigegebene, noch nicht laufende und Lehrgänge an Schulen, die aus der Verbandskasse gebaut wurden): https://www.leitstellenspiel.de/api/alliance_schoolings
🔏 AAO-Kategorien: https://www.leitstellenspiel.de/api/v1/aao_categories
🔏 AAO-Einträge: https://www.leitstellenspiel.de/api/v1/aaos
🔏 Einzelner AAO-Eintrag: https://www.leitstellenspiel.de/api/v1/aaos/{id}
🔓️ Mögliche Einsätze: https://www.leitstellenspiel.de/einsaetze.json
🔓️ Mögliche Verbandsevents und deren Einsätze: https://www.leitstellenspiel.de/alliance_event_types.json
Nutzergeführte APIs
Der LSS-Manager stellt mehrere statische Endpunkte bereit, die Informationen über im Spiel vorhandene Fahrzeugtypen, Gebäudetypen, Lehrgangsarten, Dienstgrade, POI-Arten und Übersetzungen für Einsätze (Kategorie, Voraussetzungen, Anforderung) bereitstellt.
Die "Dokumentation" zur LSSM-API findet sich unter https://api.lss-manager.de/. Da diese API von NutzerInnen instandgehalten wird, kann es vereinzelt zu Fehlern kommen. Diese dürfen gerne an das LSSM-Team gemeldet werden. Ein Mitwirken an der API ist wie für den LSSM üblich selbstverständlich möglich.
Je nach Menge der verfügbaren Freizeit von NutzerInnen kann es nach Änderungen im Spiel (bspw. Veröffentlichung eines neuen Content-Packs) einige Zeit brauchen, bis diese auch in der LSSM-API auftauchen. Das LSSM-Team ist bemüht, diese innerhalb von 48 Stunden einzupflegen, kann und will aber keine Versprechungen diesbezüglich zu machen.
Weitere möglicherweise nützliche Endpunkte
Diese Endpunkte könnten ggf. nützlich sein. Da diese vom Spiel selbst genutzt werden, stehen sie zwar zur Verfügung, es wird aber nicht aktiv darauf geachtet, dass sich diese nicht ändern. Verwendung ist daher "auf eigene Gefahr", da diese nicht als stabil betrachtet werden können
🔏 Alle aktuell offenen eigenen Einsätze: https://www.leitstellenspiel.d…ission_markers_own.js.erb (Ist leider JS, das dann erst geparsed werden muss oder mit lustigen regulären Ausdrücken möglichst fehlerfrei analysiert werden muss).
🔏 Alle aktuell im Verband freigegebenen Einsätze: https://www.leitstellenspiel.d…n_markers_alliance.js.erb (Selbe Anmerkung wie bei eigenen Einsätzen)
🔏 Alle selbst gesetzten POIs als JSON: https://www.leitstellenspiel.de/mission_positions (Ausgabe ist ein leeres Objekt, wenn der Kartenfilter für POIs deaktiviert ist)