Konzept Schnittstelle zu EasyScore


ALLGEMEINE INFOS

EasyScore ist eine einfache und intuitive Möglichkeit, Daten aus Baseballspielen live zu erfassen. EasyScore berechnet daraus automatisch Boxscores, Spielprotokolle sowie Spiel- und Saisonstatistiken.

Seit 2019 nutzt der DBV EasyScore für die Live-Erfassung der Spiele in der 1. Bundesliga. Ab der Saison 2024 wird EasyScore direkt über eine web-basierte Schnittstelle an den BSM angebunden, so dass die Bestandsverwaltung der notwendigen Daten (Spielklasse, Liga/Gruppe, Mannschaften, Spiele, Spieler) nur noch direkt im BSM erfolgt.

Bei Änderungen werden die Daten aus dem BSM über die Schnittstelle in EasyScore übertragen und stehen für das Live-Scoring zur Verfügung.

Aufgrund von Abhängigkeiten wird über die Schnittstelle sichergestellt, dass die benötigten Daten gemäß folgender Reihenfolge nach EasyScore übertragen werden:

1. Spielklassen (keine Abhängigkeiten)
2. Ligen/Gruppen (Abhängigkeiten zu Spielklassen)
3. Teams (Abhängigkeiten zu Spielklassen und Ligen/Gruppen)
4. Spiele (Abhängigkeiten zu Mannschaften, Spielklassen und Ligen/Gruppen)
5. Spieler (Abhängigkeiten zu Mannschaften, Spielklassen und Ligen/Gruppen)

Eine entsprechende Dokumentation der Schnittstelle findet man auch hier: API-Dokumentation EasyScore

Aber auch rückwärts, also von EasyScore nach BSM, werden zukünftig Daten übertragen. Im ersten Schritt wird dabei das Ergebnis übermittelt - siehe ERGEBNIS-API.


SPIELKLASSE

Die Spielklasse dient als sogenannter Trigger, ob eine Spielklasse und damit dann Ligen/Gruppen, Mannschaften und Spieler sowie Spiele mit EasyScore verarbeitet werden sollen. Hierzu gibt es in der jeweiligen Spielklasse im Reiter Steuerungsdaten ein Ankreuzfeld Abgleich mit EasyScore. Die Berechtigung das Feld aktiv zu stellen, liegt ausschließlich bei der Rolle DBV-Administration. Sollte ein Landesverband daher Interesse haben, ebenfalls bestimmte Spielklassen über EasyScore zu verarbeiten, dann direkt mit der Geschäftsstelle des DBV Kontakt aufnehmen.

Aus BSM werden folgende Felder nach EasyScore übergeben:

  • BSM_Federation - Fester Wert “DBV”
  • BSM_ID - ID der Spielklasse aus BSM
  • Name - Name der Spielklasse, ergänzt um die laufende Saison (z.B. „1. Baseball-Bundesliga 2024“); bei LV wird dieser zusätzlich in Klammern angegeben.
  • CountryCode - Fester Wert “DE”

Hinweise:

  • Die erste Übertragung erfolgt erst nach EasyScore, wenn auf Seiten BSM in der Liga/Gruppe einer Spielklasse Spiele vorhanden sind!
  • Wenn eine Spielklasse in EasyScore angelegt ist, werden Änderungen von relevanten Daten im BSM im Anschluss sofort übertragen.

LIGEN/GRUPPEN

Wird eine Spielklasse nach EasyScore übertragen, dann werden standardmäßig ebenfalls ALLE Ligen/Gruppen dieser Spielklasse übertragen.

Aus BSM werden folgende Felder nach EasyScore übergeben:

  • BSM_Federation - Fester Wert “DBV”
  • BSM_ID - ID der Liga/Gruppe aus BSM
  • BSM_LeagueID - ID der Spielklasse aus BSM
  • Name - Name der Liga/Gruppe, ergänzt um die laufende Saison (z.B. „1. Baseball-Bundesliga Nord 2024“); bei LV wird dieser zusätzlich in Klammern übergeben.

Hinweise:

  • Die erste Übertragung erfolgt erst nach EasyScore, wenn auf Seiten BSM in der Liga/Gruppe einer Spielklasse Spiele vorhanden sind!
  • Wenn eine Liga/Gruppe in EasyScore angelegt ist, werden Änderungen von relevanten Daten im BSM im Anschluss sofort übertragen.

MANNSCHAFTEN

Wird eine Spielklasse nach EasyScore übertragen, dann werden standardmäßig ebenfalls ALLE Mannschaften dieser Spielklasse übertragen.

Aus BSM werden folgende Felder nach EasyScore übergeben:

  • BSM_Federation - Fester Wert “DBV”
  • BSM_ID - ID der Mannschaft aus BSM
  • BSM_LeagueID - ID der Spielklasse aus BSM
  • Name - Kompletter Mannschaftsname (z.B. Guggenberger Legionäre)
  • Abbrevation - Kürzel der Mannschaft (z.B. REG); bei einer Spielgemeinschaft Übergabe von beiden Kürzeln (z.B. UNT/REG)
  • LogoURL - URL zum Logo der Mannschaft; bei einer Spielgemeinschaft Übergabe von leerem Wert

Hinweise:

  • Die erste Übertragung erfolgt erst nach EasyScore, wenn auf Seiten BSM in der Liga/Gruppe einer Spielklasse Spiele vorhanden sind!
  • Wenn eine Mannschaft in EasyScore angelegt ist, werden Änderungen von relevanten Daten im BSM im Anschluss sofort übertragen. Das gilt auch für die Spieler auf dem Roster einer Mannschaft.

SPIELE

Wird eine Spielklasse nach EasyScore übertragen, dann werden standardmäßig ebenfalls ALLE Spiele aus den Ligen/Gruppen dieser Spielklasse übertragen.

Aus BSM werden folgende Felder nach EasyScore übergeben:

  • BSM_Federation - Fester Wert “DBV”
  • BSM_ID - ID des Spiels aus BSM
  • BSM_LeagueID - ID der Spielklasse aus BSM
  • BSM_RoundID - ID der Liga/Gruppe aus BSM
  • BSM_AwayTeamID - ID der Gast-Mannschaft aus BSM
  • BSM_HomeTeamID - ID der Heim-Mannschaft aus BSM
  • GameNumber - Spielnummer
  • GameDate - Spieldatum (Format “tt.mm.jjjj”)
  • StartTime - Startzeit (Format “tt.mm.jjjj” “hh:mm”)
  • Umpires - Angabe aus Werten “Position” (wenn befüllt), “Nachname”, “Vorname” (abgekürzt) - getrennt durch Semikolon (z.B. HP: Langenbach D. ; 1B: Music K.; 3B: Wächter C.)
  • Scorer - Angabe aus Werten “Nachname”, “Vorname” (abgekürzt) - getrennt durch Semikolon (z.B. Gilk G.; Müncheberg S.)
  • Field - Spielort aus Werten “Name”, “Ort” - getrennt durch Komma (z.B. Stadion Rheinaue, Bonn)
  • StreamURL - Livestream (URL)

Hinweise:

  • Die erste Übertragung erfolgt erst nach EasyScore, wenn auf Seiten BSM in der Liga/Gruppe einer Spielklasse Spiele vorhanden sind!
  • Wenn ein Spiel in EasyScore angelegt ist, werden Änderungen von relevanten Daten im BSM im Anschluss sofort übertragen.

SPIELER/ROSTER

Wird eine Spielklasse nach EasyScore übertragen, dann werden standardmäßig ebenfalls ALLE Spieler der Mannschaften dieser Spielklasse (Roster) übertragen.

Aus BSM werden folgende Felder nach EasyScore übergeben:

  • BSM_Federation - Fester Wert “DBV”
  • BSM_ID - ID der Person aus BSM
  • BSM_TeamID - ID der Mannschaft aus BSM
  • Lastname - Wert aus „Name“ und „Namenzusatz“ aus BSM
  • Name - Wert aus „Titel“ und „Vorname“ aus BSM
  • Nationality - Erster Wert als Kürzel gem. 2stelligem ISO-Code 3166
  • Bats - Erster Teil Wert „Batting/Throwing“ aus BSM (Format “R”, “L” oder “S”)
  • Throws - Zweiter Teil Wert „Batting/Throwing“ aus BSM (Format “R”, “L” oder “S”)
  • LicenceNr - Wert „Passnummer“ aus BSM
  • UniformNr - Wert „Rückennummer“ aus BSM
  • PlayerPic - Wert „Spieler-Foto“ aus BSM (URL)
  • Sex - Geschlecht (Format “m” oder “w”)

Hinweise:

  • Die erste Übertragung erfolgt erst nach EasyScore, wenn auf Seiten BSM in der Liga/Gruppe einer Spielklasse Spiele vorhanden sind!
  • Wenn ein Spieler in EasyScore angelegt ist, werden Änderungen von relevanten Daten im BSM im Anschluss sofort übertragen. Das gilt auch für die Spieler auf dem Roster einer Mannschaft.

ERGEBNIS-API

Für die Übertragung des Ergebnisses eines Spiels aus EasyScore nach BSM wurde ebenfalls eine API eingerichtet. Die Übertragung nach BSM erfolgt automatisch, wenn ein Spiel in EasyScore abgeschlossen wird. Das Ergebnis wird dabei nur übertragen, wenn auf Seiten BSM noch KEIN Ergebnis vorliegt.

Die API funktioniert wie folgt:

  • Methode: POST
  • Pfad: /easyscore/games/[GameID]/result
  • Authentifizierung: HTTP Basic Auth, User und Passwort
  • Request Formate: URL-Parameter, Formular-Parameter, JSON (application/json)

Die GameID ist die in EasyScore benutzte ID des Spiels in der Tabelle tbl_Games.

URL-Parameter Beispiel:

POST /easyscore/games/123/result?home_runs=3&away_runs=2
Authorization: Basic ...

Formular-Parameter Beispiel:

POST /easyscore/games/123/result
Content-Type: application/x-www-form-urlencoded
Authorization: Basic ...

JSON Beispiel:

POST /easyscore/games/123/result
Content-Type: application/json
Authorization: Basic ...

{
  "home_runs": 3,
  "away_runs": 2
}

Diese API gibt keine Daten zurück, lediglich den Statuscode:

  • 201 Created: Das Spielergebnis wurde erfolgreich erstellt.
  • 404 Not Found: Die angegebene Spiel-ID existiert nicht.
  • 409 Conflict: Das Spielergebnis kann nicht erstellt werden. Das Spiel ist bereits gespielt oder in einem anderen Status.
  • 422 Unprocessable Entity: Die Daten sind ungültig.
  • 5xx Server Error: Es gab einen serverseitigen Fehler.

Die API kann mehrfach mit den gleichen Daten aufgerufen werden ohne einen Conflict zu erhalten.

Bei 5xx Statuscodes können, mit gebotenen Zeitabständen, weitere Updates versucht werden. Der Entwickler wird bei Auftreten von 5xx Statuscodes benachrichtigt.