Schnittstellen Turnierprogramme

Die Version 2.0.0 ist noch nicht final.

Einleitung

Änderungshistorie

xx.xx.xxxx / Version 2.0.0

  • Hinweise zu Content-Negotiation, Schnittstellen-Level 2 und JSON-Schemas

  • Funktionäre/Lizenzträger (Einzelaufruf und Gesamtliste): das Jahr als optionalen URL-Parameter zugefügt

  • Funktionäre/Lizenzträger (Gesamtliste): Gesamtliste liefert auch Namen zurück

  • Wertungsrichterzettel (digital): Objekt wr ergänzt

  • Ergebnis: Kürzel für Wertungsrichter, Turnierleiter, Beisitzer und Chairpersonen

  • Ergebnis: Eigenschaften Startgruppe, Startklasse und Wettbewerbsart für den Starter zur Prüfung von Ergebnissen, die nach Anhang 5 berechnet wurden.

  • Ergebnis: Header X-DTV-Pruefsumme entfernt und Flag endergebnis hinzugefügt.

  • Startliste: Flag für Startaufstellung in Startlisten (Gruppen und Formationen) ergänzt.

  • Ergebnis: Erweiterung Rundenablauf um Rundentyp Stichrunde (für Stich- und Relegationsrunden bei Gruppen- oder Formationswettbewerben) sowie neues Feld für Stichrundentabellen

  • Startliste Wettbewerbsart: Enthält jetzt immer alle Namen.

  • Schlüsselverzeichnis: neue Turnierformen RT und AT

  • Schlüsselverzeichnis: neue Turnierart Jazz

  • Startliste: Trainer bei Gruppen und Formationen gestrichen

  • Startliste: Restriktionen für die Aufstellung bei Gruppen- und Formationswettbewerben

  • Startliste: Klarstellung, dass Startbuchdaten für ausländische Starter nur über den Einzelabruf, jedoch nicht in der Startliste für die Veranstaltung und die Wettbewerbsart zurückgeliefert werden

  • Ergebnis: Startreihenfolge bei Gruppen- und Formationswettbewerben St/Lat/JMD sowie Einzelwettbewerben JMD im Rundenablauf ergänzt

  • Ergebnis: Klarstellung zur Reihenfolge der Starter in den Tabellen-Arrays

  • Klarstellung zu optionalen JSON-Eigenschaften

  • Veranstaltung: Korrektur der Schnittstellenbeschreibung Feld „bemerkung“

  • Startliste: Startbuch immer gefüllt ab Schnittstellen-Level 2 auch bei ausländischen Startern

  • Startliste: Feld Wettbewerbsart im Startbuch des Starters ergänzt

  • Ergebnis: Moderatoren und Protokollführer ergänzt

  • Schlüsselverzeichnis: Korrektur RSRLT in RS

  • Neuer Response Code 406

  • Schlüsselverzeichnis: neuer Tanz JAZZ

  • Klarstellung, das JS-Score für alle Varianten des Judging Systems inkl. AJS gilt

  • Ergebnis: Kreuzvorgabe im Rundenablauf

  • Ergebnis: Klarstellung, welche Startgruppe für den Starter angegeben werden soll

  • Ergebnis: Property„vd“ eines Starters ist kein Flag

19.05.2015 / Version 1.6.2

  • PDF-Upload: Details ergänzt

  • Gesamtstartliste: globales Feld [nachmeldungen] und Feld [startmeldungen] je Starter sind leere Arrays

  • API-Responses im Anhang und bei schreibenden Zugriffen ergänzt

  • Dokumentstruktur und –formatierung überarbeitet

07.05.2015 / Version 1.6.1

  • Zusatzinfo Ergebnisupload Verwarnungs/Disqualifikations-Flag

  • Schlüsselverzeichnis WR-Lizenzen: WR-B getrennt in WR-B-Std und WR-B-Lat

  • Angabe, welche Felder in der Gesamtstartliste einer Wettbewerbsart NULL sind

  • Ergebnisupload und digitale WR-Zettel: Vorgabe zur Verfahrensweise, wenn Tänze in einer Runde nicht getanzt wurden

  • Digitaler WR-Zettel: Datentyp für Einzelkreuz ist gemischt (Float für Wertung oder „L“ für Lift); Vorgabe zur Verfahrensweise, wenn die Wertungsdaten nicht vollständig digital vorliegen; Feldname für Unterschrift ergänzt

  • Skatingtabelle: Klarstellung zur Übermittlung, falls das Skatingsystem nicht angewandt wurde

25.03.2015 / Version 1.6

  • Ergebnis-Interface ergänzt um Sterne-Info bei Startern

12.03.2015 / Version 1.5

  • Startlistendownload: Flag Nachmeldeerlaubnis nun Array; Klarstellung zu globalen Parametern in der Gesamtstarterliste je Wettbewerbsart

  • Ranglistenschnittstelle: Beispielaufruf ohne Stichtag ergänzt

  • Aufstiegstabelle: Feld Zielklasse ergänzt

  • Neue Schnittstelle: Ausgefallenes (einzelnes) Turnier

  • Leerzeichen und Punkte aus Konstanten im Schlüsselverzeichnis entfernt (LTVs, Startgruppen, Startklassen, RL-IDs)

03.03.2015 / Version 1.4.1

  • Feldnamen JSON ergänzt (keine inhaltlichen Änderungen)

  • Abkürzungen für Tänze (gem. TSO) und Wettbewerbsarten korrigiert

  • Schnittstelle Aufstiegstabelle ergänzt (fehlte in dieser Version des Dokumentes)

13.02.2015 / Version 1.4

  • Alle GET/POST-Aufrufe auf vereinbarten Modus reduziert

  • Einzelstarteraufruf erweitert

  • Ergebnisupload um Clubdaten bereinigt

06.02.2015 / Version 1.3

  • Veranstaltungsdownload: Flag entfernt

  • Startlistendownload: Startbuchdaten sind ein Array über alle betroffenen Turnierarten

  • Startlistendownload: Startsperre-Flag eingefügt

  • Ranglistendownload um ein Feld erweitert

  • Ergebnisupload: Platz-Felder erweitert

  • Abkürzungen hinten angefügt

  • Fehlercodes vergeben

28.01.2015 / Version 1.2

  • Ergebnisupload, Punkt Startbuch→Ziel-Startklasse überarbeitet

  • Prüfsummenmechanismus ergänzt

21.01.2015 / Version 1.1

  • Ergebnisupload überarbeitet

  • Starterdownload überarbeitet

9.12.2014 / Version 1.0

  • Turnierprogramme/Startlisten: Flag für Verwarnung Schrittbegrenzung ist eine Eigenschaft der Turnierart; in Startbuchdaten je Turnierart verschoben und mit Laufzettel-Flag in einem Objekt zusammengefasst

  • Startlisten: Nationalität bei einzelner Person hinzugefügt

  • Startlisten: Nachmeldung-Erlaubt-Flag hinzugefügt

  • Ergebnisupload: Ergänzung für Digitale Wertungsdaten und Hinweise zu Upload Zwischenergebnisse

  • Interface für PDF-WR-Zettel-Upload

  • Flag im Veranstaltungsdatensatz für „Trotz kombiniertes Turnier nur Gesamtplätze hochladen“

  • Dokumente gesplittet und Interfacereihenfolge überarbeitet

  • Anmerkungen zum Datenmodell erweitert

  • Veranstaltungsdaten: Veranstalter und Ausrichter der Veranstaltungsebene hinzugefügt, Bemerkungstextfelder auf Veranstaltungs- und Turnierebene hinzugefügt, Rückgabe der Liste bei Verbandsanfragen: alle Turniere im Kalender, Wertungsrichter und Funktionäre auf beiden Ebenen hinzugefügt

  • Funktionärsdaten: WDSF-MIN und alte Lizenznummer hinzugefügt

  • Ergebnis-Interface überarbeitet (Wertungstyp rundenweise hinzugefügt. Wertungen, Wertungstabellen und Digitale Wertungen überarbeitet)

  • Digitale Wertungsrichterzettel JSON überarbeitet und Felder aus dem eigentlichen Ergebnisdatensatz rausgenommen. Ist getrennt zu übertragen

Datenmodell

  • Veranstalter und Veranstalter-ID
    ist i.d.R. ein Verein, es kann aber auch ein LTV sein oder auch der DTV. Es kann auch eine Veranstaltergemeinschaft sein (z.B. eine Gruppe von Vereinen), für die im Datenmodell in einer geeigneten Entität ein Eintrag vorhanden sein muss
    Jede Veranstaltung ist eindeutig einem Veranstalter zugeordnet.

  • Ausrichter und Ausrichter-ID
    ist der Verein oder der Verband (LTV bzw. DTV), der das Turnier durchführt.
    Jedes Turnier ist eindeutig einem Ausrichter zugeordnet.

  • Veranstaltung
    sind alle Turniere, die ein Veranstalter für ein (auch verlängertes) Wochenende angemeldet hat. Beispiele: GOC, Blaues Band der Spree, Hessen tanzt, danceComp, Tanzen im Dreiländereck (Aachen). Es ist nötig, Veranstaltungen als eigenständige Entität mit eigener ID zu erstellen.

  • Starter-ID (übergreifend über alle Tänzer der tänzerischen Einheit/Paar/Gruppe etc.)
    wird innerhalb der ESV-Datenbank für die Verbindung mehrerer Tänzer zu einem Starter vergeben. Im Live-Modus kann mit der Starter-ID der Aufstiegsdaten-Status eines einzelnen Starters abgefragt werden, was aber nur dann möglich sein soll, wenn der Starter für mindestens eines der Turniere der Veranstaltung in der Startliste erscheint und damit die Starter-ID dem Turnierprogramm bekannt ist.

  • Akademische Titel
    In der bisherigen DTV-Datenbank ist kein Feld für den Titel „Dr.“ vorhanden. Ein Titel wird bisher in das Feld des Vornamens eingetragen (z.B. „Thomas Dr.“). In der ESV-Datenbank sollte ein separates Feld dafür vorgesehen werden. Über die Stammdatenerfassung der Personen kann jeder Beteiligte selbst entscheiden, ob er den Titel im Sportbetrieb führen will.

  • User
    Über den User ist im ESV-System geregelt, welche Veranstaltungen er überhaupt lesen und schreiben darf (z.B. Verein, LTV, etc.)

  • Kennschlüssel
    Jedes zertifizierte Turnierprogramm/jede externe Software soll einen eindeutigen Kennschlüssel erhalten, woraus ersichtlich ist, dass es sich um eine bestimmte zertifizierte/zugelassene Software handelt. Für jede Einzelschnittstelle muss hinterlegt werden, ob mit dem jeweiligen Schlüssel lesend, schreibend oder gar nicht auf die jeweils angefragte Schnittstelle zugegriffen werden kann.

  • Optionale Datenfelder
    Optionale Datenfelder, die z.B. nur bei einzelnen Wettbewerbsarten verwendet werden, müssen trotzdem im JSON-Objekt deklariert werden. Einfache JSON-Datentypen und Objekte werden dann mit NULL belegt, Arrays werden als leeres Array deklariert. in 3-Buchstaben-Olympiccode, bei den Staaten ohne solchen: ISO-3-Code

  • User und Passwort
    Als User und Passwort werden die Vereinsportal-Zugangsdaten verwendet

Ablauf

  • Lesen der Startlisten
    Das Turnierprogramm wird zuerst die Liste der Veranstaltungsdaten (des Users) lesen. In einem zweiten Schritt wird es dann die Informationen zu den einzelnen Veranstaltungen lesen und in einem dritten Schritt die Startlisten der einzelnen Veranstaltungen mit den einzelnen Turnieren. Sobald eine Veranstaltung in der Liste der Veranstaltungen vorliegt, können die Veranstaltungsdaten und die Startlisten beliebig oft gelesen werden.
    Wird ein Turnierprogramm im Live-Modus betrieben, können die Daten der Einzelstarter ebenfalls beliebig oft abgefragt werden.

Kodierung

  • Alle Datensätze werden als JSON-Konstrukt übertragen (Feldnamen in eckigen Klammern)

  • Die JSON-Kodierung erfolgt streng nach Vorgaben aus RFC 4627

    • Strings können alle Unicode-Zeichen enthalten

      • Anführungszeichen, Backslash und Steuerzeichen (U+0000 bis U+001F) müssen escaped werden

      • Die Unicode-Zeichen von U+0000 bis U+FFFF (Basic Multilingual Plane, BMP) können, müssen jedoch nicht als 6 Zeichen lange hexadezimale Unicode-Sequenz dargestellt werden (z.B. \u00fc). Alternativ Zeichen direkt in UTF-8.

      • Die Unicode-Zeichen außerhalb des BMP werden als surrogate pair dargestellt.

  • Alle JSON-Schnittstellen sollen transparente HTTP-Komprimierung unterstützten (gzip, deflate via Accept-Encoding und Content-Encoding)

Content Negiotation und Schnittstellen-Level

  • Mit Version 2.0.0 wird für alle Endpunkte ein Schnittstellen-Level eingeführt. Da es sich nur um abwärtskompatible Ergänzungen der Struktur handelt, die jedoch hohe inhaltliche Relevanz haben, gibt es keine neue Endpunkt-URL.

  • Für alle Endpunkte gibt es ab Version 2.0.0 ein JSON-Schema (json-schema.org, draft-06), das eine grundsätzliche Validierung der JSON-Daten ermöglicht. Die Schema-Definitionen sind unter https://tanzsport.github.io/esv-json-schema einsehbar. Dort kann auch eine Online-Validierung erfolgen.

  • Der Schnittstellen-Level wird über Content Negotiation gesteuert.

    • Bei Lesezugriffen ab Schnittstellen-Level 2 (und ggf. weitere) ist die Angabe eines erwarteten Media Types der Response über den Accept-Header des HTTP Requests zwingend erforderlich.

    • Bei Schreibzugriffen ab Schnittstellen-Level 2 (und ggf. weitere) ist die Angabe eines Media Types des Requests über den Content-Type des HTTP Requests zwingend erforderlich.

  • Für den Schnittstellen-Level 1 ist die Verwendung des Accept- bzw. Content-Type-Headers nicht erforderlich, um die Kompatibilität mit bestehenden Programmversionen zu gewährleisten.

  • Alle neuen Versionen der Turnierprogramme müssen auf sämtlichen Endpunkten auf die neuen Media Types umgestellt werden, und zwar auch dann, wenn keine strukturellen Änderungen am Endpunkt erfolgt sind: Wenn die Unterstützung für den Schnittstellen-Level 1 endet, bleiben so alle Endpunkte in neueren Versionen funktionsfähig.

  • Die ESV wird auf für Responses auf Schnittstellen-Level 2 die entsprechenden Media Types für die Response als Content-Type Header verwenden.

Schnittstellen

Veranstaltungsdaten (lesend)

Dieses Interface ist vorrangig für Turnierprogramme gedacht. Das Rückgabeformat „Veranstaltung“ könnte aber auch für den Tanzsport.de-Turnierkalender Verwendung finden. Deshalb werden mehr Werte zurückgegeben als für die Turnierprogramme benötigt.

Liste

Aufruf
  • HTTP-Verb: GET

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • Media Types

    • Level 1

      • */*

      • application/json

      • application/vnd.tanzsport.esv.v1.veranstaltungsliste.l1+json

    • Level 2

      • application/vnd.tanzsport.esv.v1.veranstaltungsliste.l2+json

  • Schema-URI

GET /api/v1/veranstaltungen HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>
Rückgabe
  • Array Veranstaltungen (alle Veranstaltungen in den folgenden 2 Monaten bei Vereinsanfrage/alle bei Landesanfrage, zu denen der User Berechtigung hat)

    • Veranstaltungs-ID [id]

    • Datum Von [datumVon]

    • Datum Bis [datumBis]

    • Ort [ort]

    • Titel (optional) [titel]

Hinweis: Veranstaltungen mit Formations- oder JMD-Turnieren können nur über den Schnittstellen-Level 2 abgefragt werden.

Einzelaufruf

Aufruf
  • HTTP-Verb: GET

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • URL-Parameter: Veranstaltungs-ID

  • Media Types

    • Level 1

      • */*

      • application/json

      • application/vnd.tanzsport.esv.v1.veranstaltung.l1+json

    • Level 2

      • application/vnd.tanzsport.esv.v1.veranstaltung.l2+json

  • Schema-URI

GET /api/v1/turniere/{veranstaltungsId} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>
Rückgabe
  • Veranstaltung

    • Veranstaltungs-ID [id]

    • Datum Von [datumVon]

    • Datum Bis [datumBis]

    • Turnierstätte [turnierstaette]

      • Name [name]

      • Anschrift (Straße + Nr) [anschrift]

      • PLZ [plz]

      • Ort [ort]

    • Veranstalter [veranstalter]

      • ID [id]

      • Name [name]

      • LTV (optional) [ltv]

        • ID [id]

        • Name [name]

    • Ausrichter [ausrichter]

      • ID [id]

      • Name [name]

      • LTV (optional) [ltv]

        • ID [id]

        • Name [name]

      • Kontakt Telefon [kontaktTelefon]

      • Kontakt E-Mail [kontaktEmail]

    • Titel (optional) [titel]

    • Bemerkungen (Freitext, optional) [bemerkung] (Hinweis: Implementiert von Beginn als Feld bemerkung – Korrektur in der Dokumentation ab Version 2.0.0)

    • Array Wertungsrichter (optional) [wertungsrichter]

      • Inhalte wie bei Einzelaufruf Funktionäre (siehe unten)

    • Array Funktionäre (TL, BS, CHM, optional) [funktionaere]

      • Inhalte wie bei Einzelaufruf Funktionäre (siehe unten)

  • Array Flächen [flaechen]

    • Flächen-Bezeichnung (eindeutig innerh. der Veranstaltung) [id]

    • Typ (Text: z.B. Parkett, Kunststoff, Stein) [typ]

    • Länge (in Metern; Kommawert z.B. 10,5; Länge ≥ Breite) [laenge]

    • Breite (in Metern; Kommawert) [breite]

  • Array Turniere [turniere]

    • Turnier-ID [id]

    • Datum Von [datumVon]

    • Datum Bis [datumBis]

    • Startzeit Plan (Zeit, die im Tanzspiegel veröffentlicht wurde)

    • Startzeit Plan Korrigiert (kann, sofern vom Ausrichter verändert auch im Terminkalender als veränderte Startzeit kenntlich dargestellt werden)

    • Titel (optional) [titel]

    • Veranstalter [veranstalter]

      • ID [id]

      • Name [name]

      • LTV (optional) [ltv]

        • ID [id]

        • Name [name]

    • Ausrichter [ausrichter]

      • ID [id]

      • Name [name]

      • LTV (optional) [ltv]

        • ID [id]

        • Name [name]

    • Flächen-ID [flaechenID]

    • Wettbewerbsart (z.B. Einzel, Formation, Solo, Duo,…) [wettbewerbsart]

    • Turnierform [turnierform]

    • Startgruppe [startgruppe]

    • Startklasse oder Startliga [startklasseLiga]

    • Turnierart [turnierart]

    • Zulassung (grenzt die zugelassenen Paare ein, z.B. DTV oder auf einen oder mehrere LTV;) [zulassung]

      • Array; mögliche Werte: WDSF, EU, DTV + LTVs

    • Wanderpokal: true/false [wanderpokal]

    • Turnierrang (numerisch) [turnierrang]

    • Flag Aufstiegsturnier (Vergabe von Aufstiegspunkten und –platzierungen ja/nein) [aufstiegsturnier]

    • Ranglisten-ID (optional, bei Ranglistenturnieren und ggf. bei DM)

    • WDSF-Turnier-ID (optional) [wdsfTurnierId]

    • Startgebühr in EUR (optional, Zahlwert oder Freitext) [startgebuehr]

    • Bemerkungen (Freitext optional) [bemerkungen]

    • Array Wertungsrichter (optional) [wertungsrichter]

      • Personen-ID

    • Turnierleiter Personen-ID (optional) [turnierleiter]

    • Beisitzer Personen-ID (optional) [beisitzer]

    • Chairman Personen-ID (optional) [chairman]

Hinweis: Veranstaltungen mit Formations- oder JMD-Turnieren können nur über den Schnittstellen-Level 2 abgefragt werden.

Startlisten (lesend)

Startlisten können für eine spezifische Veranstaltung oder als Gesamtstartliste für eine Wettbewerbsart zur Offline-Verwendung heruntergeladen werden. Die Gesamtstartliste einer enthält aus Datenschutzgründen keine Namen der Personen (Feldwerte [titel], [vorname], [nachname], [geschlecht] sind NULL).

Veranstaltung

Aufruf
GET /api/v1/startliste/veranstaltung/{veranstaltungsId} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>

Rückgabe

Global:

  • Status für Meldestand (0 = Turniermeldungen noch nicht gestartet, 1 = Meldestand noch nicht final, 2 = Meldestand final) [status]; NULL in Gesamt-Starterliste

  • Array Nachmeldungen möglich: Liste der Turnier-IDs mit Nachmeldeerlaubnis [nachmeldungen]; leer in Gesamt-Starterliste

Erläuterung:
Turnierprogramme können die Startdaten ab dem Start der Turniermeldungen herunterladen (z.Z. der 21. des Vorvormonats). Der finale Meldestand inkl. der aktuellen Aufstiegsdaten kann frühestens am Tag vor dem Turnier geladen werden – er wird im Status als solcher gekennzeichnet.

Starterweise [starter]:

  • Starter-ID (ID des Starters [Paar, Solist, Duo, Formation, Gruppe])

  • Team (nur bei Formations-, Small-Group- und Mannschaftswettbewerben)

    • Team-Name (sofern vorhanden, z.B. bei Gruppen und Formationen) [name]

    • Team-Kapitän (sofern vorhanden, z.B. bei Gruppen und Formationen)

    • Trainer (sofern vorhanden, z.B. bei Gruppen und Formationen) [trainer] – ab Level 2

    • Musiktitel (Bezeichnung der Choreographie/Titel des Tanzes) [musikTitel] – ab Level 2

  • Personen (Array, enthält bei Teamwettbewerben alle Tänzer inkl. Ersatztänzer) [personen]:

    • Personen-ID (DTV-Nummer) [id]

    • Titel [titel]

    • Vorname [vorname]

    • Nachname [nachname]

    • Geschlecht [geschlecht]

    • WDSF-MIN (optional, sofern vorhanden) [wdsfMin]

    • Nationalität (3-Buchst.-Code) [nationalitaet]

    • Flag Startaufstellung [startaufstellung] (relevant nur bei Gruppen- und Formationen) – ab Level 2

      • alle mit true markierten Personen wurden vom Verein für die Startaufstellung benannt, so dass angenommen werden kann, dass diese tatsächlich zum Einsatz kommen

  • Club (bei deutschen Paaren Pflicht, sonst optional) [club]

    • Club-ID [id]

    • Club-Name [name]

    • LTV (bei deutschen Paaren Pflicht, sonst optional) [ltv]

      • LTV-ID [id]

      • LTV-Name [name]

  • Staat (Staat, für den der Starter an den Start geht) [staat]

  • Meldungen (Array, leer bei Aufruf der Gesamt-Starterliste für eine Wettbewerbsart) [meldungen]

    • Turnier-ID (nur die IDs der Turniere der aufgerufenen Veranstaltung)

    • Flag Meldung (Meldung = true, Abmeldung = false) [meldung]

    • Datum der Meldebestätigung (durch Verein) [bestaetigt]

    • Startnummer (optional – wird erst später für Ligaturniere relevant sein wie JMD und Formation) [startNr]

    • Flag Startsperre (true/false) [startsperre]

  • Aufstellung (optional, nur Gruppen- und Formationswettbewerbe) [aufstellung] – ab Level 2

    • Minimal-Anzahl Aktive (Anzahl der Aktiven, die in einer Gruppe oder Formation mindestens tanzen müssen) [min]

      • gilt bei JMD und Jazz für alle Aktiven (n Aktive)

      • gilt bei Formationen Standard/Latein jeweils für Herren und Damen getrennt (n Herren, n Damen)

    • Maximal-Anzahl Aktive (Anzahl der Aktiven, die in einer Gruppe oder Formation maxmimal tanzen dürfen) [max]

      • gilt bei JMD und Jazz für alle Aktiven (n Aktive)

      • gilt bei Formationen Standard/Latein jeweils für Herren und Damen getrennt (n Herren, n Damen)

    • Ausland (Maximalanzahl der Aktiven ausländischer Nationalität, die in einer Gruppe oder Formation tanzen dürfen) [ausland]

      • NULL, wenn keine Restriktionen vorliegen

      • Alle Personen einer Gruppe oder Formation mit Nationalität ungleich GER sind ausländischer Nationalität

  • Array Startbuch (Level 1: leer für alle ausländischen Starter in der Startliste für die Veranstaltung und die Wettbewerbsart, gefüllt soweit vorhanden bei Einzelabruf der Starterdaten [s. Schnittstellendokumentation für externe Systeme]; Level 2: immer gefüllt für alle Starter) [startbuch]

    • Wettbewerbsart [wettbewerbsart]

    • Turnierart [turnierart]

    • Startgruppe [startgruppe]

    • Ist-Startliga (nur Formationswettbewerbe St/Lat und JMD) [startliga]

    • Ist-Startklasse (z.B. BSW, D, C, B, A, S, PD) (nur Einzelwettbewerbe St/Lat und JMD) [startklasse]

    • Ziel-Startklasse (z.B. C, B; NULL für BSW/S/PD/ausländische-Paare/alle Doppelstartpaare, die nicht weiter aufsteigen können, d.h. „kein Aufstieg möglich bei diesem Turnier für dieses Paar“; nur Einzelwettbewerbe St/Lat, ggf. später Einzelwettbewerbe JMD) [naechsteStartklasse]

    • Punkte (nur Einzelwettbewerbe St/Lat, ggf. später Einzelwettbewerbe JMD) [punkte]

      • Ist [ist]

      • Ziel [ziel]

    • Platzierungen (nur bei Einzelwettbewerben St/Lat, ggf. später Einzelwettbewerbe JMD) [platzierungen]

      • Ist [ist]

      • Ziel [ziel]

    • Regeln (nur Einzelwettbewerbe St/Lat, ggf. später Einzelwettbewerbe JMD) [regeln]

      • Mindestpunkte [minPunkte]

      • Platzierung bis Platz (einschließlich) [platzierungBis]

    • Flags [flags]

      • Laufzetteldruck da Aufstiegschance am Wochenende (nur Einzelwettbewerbe St/Lat, ggf. später Einzelwettbewerbe JMD)

      • Verwarnt wg. Figurenbegrenzung (nur Einzelwettbewerbe St/Lat)

Wettbewerbsart

Aufruf
  • HTTP-Verb: GET

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • URL-Parameter: Wettbewerbsart

GET /api/v1/startliste/wettbewerbsart/{wettbewerbsart} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>
Rückgabe

Wie Startliste für Veranstaltung. Das Feld [startmeldungen] je Starter ist ein leeres Array. Die globalen Felder [status] und [nachmeldungen] sind NULL bzw. leer.

Hinweis: Startlisten für Gruppen- und Formationen können nur über Schnittstellen-Level bezogen werden.

Ranglisten (lesend)

Aufruf

  • HTTP-Verb: GET

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • URL-Parameter: RL-ID (Mehrfachnennung mit versch. IDs möglich)

  • URL-Parameter: Stichtag (ttmmjjjj, optional, ohne Angabe letzter Stand)

  • Media Types

    • Level 1

      • */*

      • application/json

      • application/vnd.tanzsport.esv.v1.ranglisten.l1+json

    • Level 2

      • application/vnd.tanzsport.esv.v1.ranglisten.l2+json

  • Schema-URI

Ohne Stichtag:

GET /api/v1/ranglisten/{ranglistenId1},{ranglistenId2},... HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>

Mit Stichtag:

GET /api/v1/ranglisten/{stichtag}/{ranglistenId1},{ranglistenId2},... HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>

Rückgabe

  • Global-je-RL

    • RL-ID [id]

    • Stand (Datum der letzten Änderung) [stand]

  • Array Starter [starter]:

    • Starter-ID [id]

    • Rang [rang]

      • Rangliste [rl]

      • Platzierung der vorhergehenden DM [dm]

    • Array über alle Personen: (nicht bei Gruppen/Formationen, bei Paaren: Herr-ID, Dame-ID,…) [personen]

      • Personen-ID [id]

      • Titel [titel]

      • Vorname [vorname]

      • Nachname [nachname]

    • Club [club]

      • ID [id]

      • Name [name]

      • LTV [ltv]

        • ID [id]

        • Name [name]

    • RL-Punkte [punkte]

    • Anz. teilgenommene Turniere in der Saison (evtl. verwendbar für die DM-Warnung in Std/Lat) [anzahlTurniere]

Funktionäre/Lizenzträger (lesend)

Lizenzträger können im Einzelabruf oder als Gesamtliste geladen werden. Die Gesamtliste muss im Turnierprogramm nach sieben Tagen gelöscht werden. Danach muss sie ggf. erneut heruntergeladen werden.

Einzelaufruf

Aufruf
  • HTTP-Verb: GET

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • URL-Parameter: Personen-ID

  • URL-Parameter: Jahr (JJJJ, optional, Standard ist das aktuelle Jahr)

  • Media Types

    • Level 1

      • */*

      • application/json

      • application/vnd.tanzsport.esv.v1.funktionaer.l1+json

    • Level 2

      • application/vnd.tanzsport.esv.v1.funktionaer.l2+json

  • Schema-URI

GET /api/v1/funktionaer/{personenId}/{jahr} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>
Rückgabe
  • Personen-ID [id]

  • WDSF-MIN (optional, sofern verfügbar) [wdsfMin]

  • alte Lizenznummer (optional) [lizenzNr]

  • Titel [titel]

  • Vorname [vorname]

  • Nachname [nachame]

  • Club [club]

    • ID [id]

    • Name [name]

    • LTV [ltv]

      • ID [id]

      • Name [name]

  • Staat [staat]

  • Array Lizenzen [lizenzen]

    • Lizenz-IDs (Auflistung aller gültigen Funktionärs-Lizenzen)

Gesamtliste

Aufruf
  • HTTP-Verb: GET

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • URL-Parameter: Jahr (JJJJ, optional, Standard ist das aktuelle Jahr)

  • Media Types

    • Level 1

      • */*

      • application/json

      • application/vnd.tanzsport.esv.v1.funktionaere.l1+json

    • Level 2

      • application/vnd.tanzsport.esv.v1.funktionaere.l2+json

  • Schema-URI

GET /api/v1/funktionaere/{jahr} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>
Rückgabe
  • Array (Elemente wie Einzelaufruf)

Aufstiegstabellen (lesend)

Z.Zt. nur für Wettbewerbsart Einzel

Existiert kein Eintrag in der Tabelle (Array Kriterien), ist kein weiterer Aufstieg möglich.
Die Tabelle enthält auch Felder für die Ist-Klasse BSW, für die technisch der Aufstieg ermittelt werden muss, der jedoch erst nach Umwandlung in ein vollwertiges Startbuch vollzogen werden kann.

Aufruf

  • HTTP-Verb: GET

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • Media Types

    • Level 1

      • */*

      • application/json

      • application/vnd.tanzsport.esv.v1.aufstiegstabellen.l1+json

    • Level 2

      • application/vnd.tanzsport.esv.v1.aufstiegstabellen.l2+json

  • Schema-URI

GET /api/v1/aufstiegstabelle/{wettbewerbsart}/{jahr} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Accept: <gem. Schnittstellen-Level oder leer>

Rückgabe

  • Array

    • Landesverbände (Array, Landesverbände, für die die Tabelle gültig ist, z.Zt. alle) [ltv]

    • Mindest-Punkte (Mindest-Punkte, die zum Erreichen einer Platzierung erforderlich sind) [minPunkte]

    • Tabellen (Array) [tabellen]

      • Startgruppen (Array) [startgruppen]

      • Turnierart [turnierart]

      • Kriterien (Array, aufsteigend sortiert nach Klasse) [kriterien]

        • Klasse (Ist-Klasse des Paares) [klasse]

        • Ziel-Klasse des Aufstiegs [zielklasse]. Bei Ist-Klasse, die keinen Aufstieg ermöglichen wird NULL zurückgeliefert (z.B. BSW)

        • Punkte (erforderliche Punkte für Aufstieg) [punkte]

        • Plätze (erforderliche Plätze für Aufstieg) [plaetze]

        • Platzierung Bis Platz [bisPlatz]

        • Doppelstart: true/false, kennzeichnet Aufstiege in Startklassen, die nur im Doppelstart genutzt werden können [doppelstart]

Ergebnisse (schreibend)

Die Ergebnisse eines Turniers können mehrfach hochgeladen werden, z.B. im Live-Modus nach jeder Runde. Dabei können sich auch die Inhalte des übergreifenden Berichtes verändern.

Erst nach Turnierende darf das Flag endergebnis im Ergebnisupload mit dem Wert true übermittelt werden. Dies ist für das ESV-System das Signal, das die Daten komplett sind (Turnier beendet). Danach können die Ergebnisse noch weitere 4 Stunden für Korrekturen erneut hochgeladen werden. Nach 4 Stunden lässt das ESV-System ein Hochladen nicht mehr zu.

Das Hochladen von Zwischenergebnissen (auch nur der reinen Startliste) ist möglich. Solange das Turnier noch läuft sind Daten wie: Endzeit, Ergebnis und Wertung (für noch nicht ausgeschiedene Starter) optional und Rundenablauf nur teilvollständig. Das Starter-Array muss trotzdem bei jedem Upload komplett (alle Starter inkl. abwesende) hochgeladen werden. Jeder Upload überschreibt immer den vorherigen komplett.

Solange die Software-Token für den Schnittstellen-Level 1 noch aktiv sind, muss das ESV-System den alten Header X-DTV-Pruefsumme weiter als Flag für das Endergebnis interpretieren.

Aufruf

POST /api/v1/ergebnis/{turnierId} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Content-Type: <gem. Schnittstellen-Level oder leer>

Inhalt

Übergreifend Bericht:

  • Flag Endergebnis (boolean) [endergebnis] – ab Level 2

  • Tänze (Array, max. 10 Tänze) [taenze]

    • gültige Werte: LW, TG, WW, SF, QU, SB, CC, RB, PD, JV, STD, LAT, JMD, DF, SA, …​)

  • WR (Array, WR des Turniers) [wr]

    • Buchstaben-Kürzel [kuerzel] – ab Level 2

      • muss eindeutig für das Turnier sein

      • max. drei alphanumerische Zeichen

    • Personen-ID (für DTV-WR Pflicht, für Ersatz-WR optional, für Ausländer NULL) [id]

    • Vorname [vorname]

    • Nachname [nachname]

    • Club [club]

      • Club-Name (optional für Ausländer) [name]

      • LTV-Name (für Ausländer NULL) [ltv]

    • Staat [staat]

  • Turnierleiter (Array, min. 1 Element) [tl]

    • Analog WR-Einzelement (ID Pflicht, Ausnahmen auf Veranstaltungsebene konfiguriert)

    • In der ESV wird nur der erste Eintrag verarbeitet.

  • Beisitzer (Array, min. 1 Element) [bs]

    • Analog WR-Einzelement (ID Pflicht, Ausnahmen auf Veranstaltungsebene konfiguriert)

    • In der ESV wird nur der erste Eintrag verarbeitet.

  • Chairman (optional) (Array) [ch]

    • Analog WR-Einzelement

    • In der ESV wird nur der erste Eintrag verarbeitet

  • Moderatoren (optional) (Array) [moderatoren] – ab Level 2

    • Analog WR-Einzelelement; ID-Angabe ist nicht verpflichtend.

  • Protokollführer (optional) (Array) [protokoll] – ab Level 2

    • Analog WR-Einzelelement; ID-Angabe ist nicht verpflichtend.

  • Vorkommnisse (optional) [vorkommnisse]

  • Beginnzeit (ISO8601) [beginn]

  • Endzeit (ISO8601) [ende]

  • Arrays für Ablauf von normalen Runden [ablauf] und Stichrunden [stichrunden] (NULL für Upload von nur-Startlisten)

    • Runde mit Schlüsselwerten 1, 1A, 1B, R, 2, 3, 4, 5, 6, 7, 8, 9, F, FA, FB (Werte bis hier nur im Array [ablauf]), PSR, RSR (diese Werte nur im Array [stichrunden])

      • Redance = R, bei 1.VR = 1A, bei 2.VR = 1B, bei Formations A-Finale = FA, bei B-Finale = FB, Stichrunde bei Gruppen- und Formationswettbewerben mit Auswirkung auf das Ergebnis = PSR, Stichrunden bei Gruppen- und Formationswettbewerben ohne Auswirkung auf das Ergebnis z.B. bei Relegation = RSR

    • Wertungstyp [typ]

      • Kreuze {0..1} = K, Mannschaftspunkte {1..1,5..2..2,5..3} = M, Finalplätze {1..x} = P, FormationswertungKreuze = FK, FormationswertungPlätze = FP, JMD-WertungenKreuze = JK, JMD-WertungenPlätze = JP, JudgingSystem alle Versionen inkl. AJS = JS

    • Platz [platz] – ab Level 2

      • Platz für den die Stichrunde durchgeführt wurde; NULL für alle Rundentypen außer PSR und RSR) – Achtung, es gibt „echte“ Stichrunden (PSR, mit Auswirkungen auf das Gesamtergebnis des Turniers z.B. Stichrunden um Platz 1 bei DM oder Plätze bei Regionalmeisterschaften) oder Relegationsrunden (RSR), bei denen das Gesamtergebnis des Turniers nicht verändert wird (Austanzen der Relegation zwischen 1. und 2. Bundesliga – nur JMD)

    • Array Startreihenfolge (nur Gruppen- und Formationswettbewerbe St/Lat/JMD sowie Einzelwettbewerbe JMD; Startnummern der Starter in Reihenfolge des Starts in der jeweiligen Runde) [startreihenfolge] – ab Level 2

    • Kreuzvorgabe bei Wertungstypen K, FK, JK (sonst NULL) [kreuzvorgabe] – ab Level 2

      • Kreuzvorgabe von (Ganzzahl) [von]

      • Kreuzvorgabe bis (Ganzzahl) [bis]

  • kombiniert mit Turnier-ID (optional) [kombiniertMit]

  • Zuschauerzahl [zuschauer]

FK, FP, JK und JP Wertungen sind im normalen Ergebnisarray nur wie Kreuzsummen und Finalwertungen enthalten. Im Digitalen-Wertungs-Array sind auch die Punktewertungen als Punkte in den verschiedenen „Tänzen“ abgelegt.

Zeilenweise Starter [starter]:

  • Starter-ID (Pflicht bei DTV- und Grenzverkehrs-Paaren, bei WDSF-Paaren optional) [id]

  • Startnummer [startNr]

  • Personen (Array, enthält bei Teamwettbewerben alle Aktiven des Starters, die tatsächlich getanzt haben)

    • Personen-ID (Pflicht bei DTV- und Grenzverkehrs-Paaren, bei WDSF-Paaren optional) [id]

    • Vorname [vorname]

    • Nachname [nachname]

    • WDSF-MIN (optional, sofern vorliegend; bei WDSF-Paaren Pflicht) [wdsfMin]

  • Staat [staat]

  • Status (teilgenommen = 1, fehlt entschuldigt = 2, fehlt unentschuldigt = 3) [status]

  • Meldungstyp (regulär = 1, Nachmeldung = 2, Nachmeldung, Sieger = 3, Nachmeldung, Aufsteiger = 4) [meldungsTyp]

  • Anzahl Sterne (gesetzte Paare) [sterne]

  • Startgruppe (nur Einzelwettbewerbe Std/Lat und Gruppen- bzw. Formationswettbewerbse; sonst null; gem. Schlüsselverzeichnis) [startgruppe] – ab Level 2

    • Hier muss der ursprüngliche in der Startliste verzeichnete Wert angegeben werden – nicht die Startgruppe, die bei der Berechnung von kombinierten Turnierergebnissen verwendet wurde (bei einem Jug-Starter im kombinierten Hgr/Hgr II-Turnier also Jug, nicht Hgr)

  • Startklasse (nur Einzelwettbewerbe Std/Lat; sonst null; gem. Schlüsselverzeichnis) [startklasse] – ab Level 2

    • Hier muss die zum Zeitpunkt des Turniers gültige Startklasse des Starters angegeben werden.

  • Wettbewerbsart (nur Einzelwettbewerbe JMD; sonst null; gem. Schlüsselverzeichnis) [wettbewerbsart] – ab Level 2

    • Hier muss die ursprüngliche in der Startliste verzeichnete Wettbewerbsart angegeben werden.

  • Ergebnis (NULL bei Status 2 oder 3 oder beim Upload von nur-Startliste) [ergebnis]

    • Platz-Gesamtergebnis Von [platzGesamtVon]

    • Platz-Gesamtergebnis Bis [platzGesamtBis]

    • Platz-Eigenes-Turnier Von (z.B. nach Anhang 5, NULL wenn nicht benötigt) [platzTurnierVon]

    • Platz-Eigenes-Turnier Bis (z.B. nach Anhang 5, NULL wenn nicht benötigt) [platzTurnierBis]

    • Punkte [punkte]

    • Platzierungen gesamt (zur Überprüfung in der DB, Adminalarm bei Abweichung) [platzierungenGesamt]

    • Punkte gesamt (zur Überprüfung in der DB, Adminalarm bei Abweichung)

    • Aufstieg (0 = nein, 1 = ja, 2 = ja, durch Beschluss) [aufstieg]

    • Flag Laufzettel (Starter hat manuell bearbeitete Aufstiegdaten)

    • Verwarnung/Disqualifikation (0 = keine, 1 = Verwarnt Schrittbegrenzung, 2 = Disqualifiziert Schrittbegrenzung, 3 = gewöhnliche Disqualifikation) [vd]
      Das Verwarnungsflag darf nur >0 gesetzt werden, wenn die Verwarnung oder Disqualifikation innerhalb dieses Turnieres erfolgt ist. Dabei ist zu beachten, dass es für Paare möglich ist, innerhalb eines Turnieres in einer Runde erst verwarnt und in einer späteren Runde disqualifiziert zu werden (in diesem Fall wird vd=2 übertragen).

  • Wertungen für Runden aus Rundenablauf (Array mit N = Anzahl Runden Elementen; nicht getanzte Runden werden als NULL übertragen, Runden nach Ausscheiden werden gar nicht übertragen; werden Tänze in der jeweiligen Runde nicht getanzt, ist das jeweilige Wertungselement mit NULL anzugeben; Stichrundenwertungen werden hier nicht angegeben!) [wertung]

    • Vorrundenwertung (nur Kreuz+Mannschaftspunkt-Wertungen)

      • Array WR

        • Array Tänze+1

          • Tänze 1-x: Float für Wertung (Einzelkreuze, sonst NULL, nicht getanzte Tänze der Runde ebenfalls NULL)

          • Tänze+1: Float Summe

      • Summe Wertungen über alle Tänze und alle WR

    • JudgingSystem alle Versionen inkl. AJS: Summe Float

    • Endrundenwertung (nur Final-Platz-Wertungen, bei Mannschaft wird Struktur der Vorrundenwertung verwendet)

      • Array Tänze

        • Array WR+2

          • WR1-x: Non-signed Byte für Wertung

          • WR+1: Platzziffer

          • WR+2: Platzziffer Summe

  • Stichrundenwertung (nur eine möglich pro Starter, ansonsten NULL) [stichrundenwertung] – ab Level 2

    • 0-basierter Index der Stichrunde aus dem Stichrunden-Ablauf

    • erhaltene Wertungen [wertung]; Struktur wie Endrundenwertung in den Wertungen der normalen Runden, d.h. Array von Arrays; da aktuell nur für Formationen und Gruppen relevant enthält das äußere Array nur ein inneres Array für den einzigen Tanz der Stichrunde

Einmal:

  • Array Endrundentabellen (nur bei Platzwertungen P, FP, JP in Reihenfolge aus Rundenablauf, vor Turnierende NULL) [endrundentabellen]

    • Array Tänze

      • Array über Endrundenstarter (in Reihenfolge der an der Runde teilnehmenden Starter aus dem Starter-Array; Zeilen im heute gedruckten Dokument)

        • Array über Plätze (Spalten im heute gedruckten Dokument)

          • „Tabellenzelle“ (solange in Ausrechnung benötigt; NULL wenn Ausrechnung in früherer Spalte beendet)

            • Anzahl [anzahl]

            • Summe (optional, sonst NULL) [summe]

  • Array Skatingtabellen (nur bei Platzwertungen P in Reihenfolge aus Rundenablauf, vor Turnierende leeres Array; sofern kein Skating in der Runde angewandt ist das jeweilige Element NULL) [skatingtabellen]

    • Skating Regel 10 [regel10]

      • Array über Endrundenstarter (in Reihenfolge der an der Runde teilnehmenden Starter aus dem Starter-Array)

        • Array über Plätze

          • „Tabellenzelle“ (wenn in Ausrechnung benötigt, sonst NULL)

            • Anzahl [anzahl]

            • Summe (optional, sonst NULL) [summe]

        • Platz (sofern in Regel 10 bestimmt, sonst NULL)

    • Skating Regel 11 (optional) [regel11]

      • Array über Endrundenstarter (in Reihenfolge der an der Runde teilnehmenden Starter aus dem Starter-Array)

        • Array über Plätze

          • „Tabellenzelle“ (wenn in Ausrechnung benötigt, sonst NULL)

            • Anzahl [anzahl]

            • Summe (optional, sonst NULL) [summe]

        • Platz (sofern in Regel 11 bestimmt, sonst NULL)

  • Array Stichrundentabellen (ab Schnittstellen-Level 2; Reihenfolge aus Rundenablauf; wenn keine Stichrunden durchgeführt wurden NULL) [stichrundentabellen]

    • Struktur der Einzelelemente wie bei Endrundentabellen

Bei Startern eines anderen Staates, die keine Paar-ID bzw. Partner/in-ID haben, sind nur die Namen eingetragen, evtl. der Clubname, aber auch der Staat.

Rückgabe

Response-Objekt und HTTP-Ergebnis-Code

Ausgefallenes Turnier (schreibend)

Dieser Aufruf ist immer ein Turnierabschluss und startet die vier-Stunden-Frist zum Schließen des Turniers. Innerhalb der Frist muss auch ein Upload von „echten“ Ergebnissen ersatzweise möglich sein.

Aufruf

  • HTTP-Verb: POST

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • URL-Parameter: Turnier-ID

  • Media Types

    • Level 1

      • */*

      • application/json

      • application/vnd.tanzsport.esv.v1.turnierausfall.l1+json

    • Level 2

      • application/vnd.tanzsport.esv.v1.turnierausfall.l2+json

  • Schema-URI

POST /api/v1/ausgefallen/{turnierId} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Content-Type: <gem. Schnittstellen-Level oder leer>

Inhalt

  • Vorkommnisse (optional) [vorkommnisse]

Rückgabe

Response-Objekt und HTTP-Ergebnis-Code

Wertungsrichterzettel PDF (schreibend)

Über diese Schnittstelle können eingescannte Wertungsrichterzettel als PDF-Dateien hochgeladen werden.

Aufruf

  • HTTP-Verb: POST

  • HTTP Header: User + Passwort (Basic Authentication)

  • HTTP Header: User-Agent (Software inkl. Version + Kennschlüssel)

  • Content-Type: multipart/form-data

  • URL-Parameter: Turnier-ID

  • Media-Types

    • keine

POST /api/v1/wrzettelpdf/{turnierId} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz

Inhalt

Der Multipart-Request-Body enthält beliebig viele PDF-Dateien. Der Name der Parts kann frei gewählt werden:

Content-Type: multipart/form-data; boundary=----Boundary
----Boundary
Content-Disposition: form-data; name="a"; filename="WRZettel1.pdf"
Content-Type: application/pdf

----Boundary
Content-Disposition: form-data; name="b"; filename="WRZettel2.pdf"
Content-Type: application/pdf

Rückgabe

Response-Objekt und HTTP-Ergebnis-Code

Wertungsrichterzettel digital (schreibend)

Über diese Schnittstelle können die Original-Daten der digitalen Wertungsrichterzettel hochgeladen werden. Die Verwendung ist nur zulässig, wenn tatsächlich digitale Wertungsgeräte zum Einsatz kommen.

Aufruf

POST /api/v1/wrzetteldigi/{turnierId}/{runde} HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
User-Agent: Software/1.0; Token=abcdefghijklmnopqrstuvwxyz
Content-Type: <gem. Schnittstellen-Level oder leer>

Inhalt

Bei Formations/JMD-Wertungen läuft das Wertungsarray immer über 5/4 virtuelle Tänze
(Tanz 1-4/3: Wertungsgebiete Punkte 0-10, Tanz 5/4: Kreuz oder Platz).

  • Array über alle WR (in der Reihenfolge wie im Ergebnisupload; das Element ist NULL, wenn die Wertungen nicht vollständig digital erfasst wurden, z.B. wenn teilweise oder vollständig auf Papier gewertet wurde)

    • Wertungsrichter [wr] – ab Level 2

      • Personen-ID [id]

      • Vorname [vorname]

      • Nachname [nachname]

    • Kreuzvorgabe von (bei Finale NULL) [kreuzvorgabeVon]

    • Kreuzvorgabe bis (bei Finale NULL) [kreuzvorgabeBis]

    • Array über Starter [starter]

      • Startnummer [startNr]

      • Array über Tänze (bzw. Wertungsgebiete bei Formation oder JMD)

        • Wertung (Float oder „L“ für Lift, NULL, falls dieser Tanz in der Runde nicht getanzt wurde)

      • Float Summe Wertung (NULL bei Platzwertung) [summe]

    • Unterschrift (Base64-kodiertes PNG-Bild 1bit, max. 400*200 Pixel)

Rückgabe

Response-Objekt und HTTP-Ergebnis-Code

Anhang

Schlüsselverzeichnis

LTVs

HATV, HTV, LTVBerlin, LTVBr, LTVBremen, LTVB, LTVS, NTV, SLT, TBW, TMV, TNW, TRP, TSH, TTSV, LTVSA

Wettbewerbsarten

Einzel, FormationStdLat, Mannschaft, Solo, SoloMaennlich, SoloWeiblich, Duo, SmallGroup, FormationJMD

Turnierformen

DM (Deutsche Meisterschaft), DP (Deutschlandpokal), DC (Deutschlandcup), RLT (Rangliste),
RS (Rising Star Rangliste), GM (Gebietsmeisterschaft), LM (Landesmeisterschaft), OT (Offenes Turnier), ET (Einladungsturnier), IET (Int. Einladungsturnier), IM (Int. Meisterschaft), IT (Int. Turnier), PDT (PD Trophy), LT (Ligaturnier), IMK (Int. Länderkampf Mannschaft), MK (Mannschaftskampf),
RM (Regionalmeisterschaft JMD), RT (Relegationsturnier; nur-technische Turnierform für Relegationsturniere), AT (Aufstiegsturnier; nur-technische Turnierform für Aufstiegsturniere)

Startgruppen

KinI, KinII, Kin, JunI, JunII, Jug, Hgr, HgrII, SenI, SenII, SenIII, SenIV, U21, MCI, MCII

Ggf. Kombinationen aus diesen Abkürzungen (z.B. Jug/Hgr, SenI/II)

Startklassen

BSW, D, C, B, A, S, PD, 1BL, 2BL, RL, OL, LL, VL

Turnierarten

Std, Lat, Kmb, JMD, SD-Std, SD-Lat, Jazz

Ranglisten-IDs

JunII-Std, JunII-Lat, Jug-Std, Jug-Lat, Hgr-Std, Hgr-Lat, Hgr-RS-Std, Hgr-RS-Lat, SenI-Std, SenII-Std, G55-Std, LS66-Std, Jug-SoloM-JMD, Jug-SoloW-JMD, Jug-Duo-JMD, Jug-SG-JMD, Hgr-SoloM-JMD, Hgr-SoloW-JMD, Hgr-Duo-JMD, Hgr-SG-JMD

Lizenztypen

Turnierleiter

TL, TL-JMD

WR-Einzel

WR-D (alle aktiven C-Tänzer mit WR-C), WR-C, WR-B-Std, WR-B-Lat, WR-A-Std, WR-A-Lat, WR-S-Std, WR-S-Lat, WR-S-RL-Std, WR-S-RL-Lat, WR-S-DM-Std, WR-S-DM-Lat

Bemerkung: Bei Angabe von WR-D sollen keine höheren, weiteren Lizenzwerte übertragen werden.

WR-Formation Std/Lat

WR-F1, WR-F2, WR-F-BL, WR-F-DM,

WR-JMD

WR-J1, WR-J2, WR-J1-DM, WR-J2-DM

Tänze

LW, TG, WW, SF, QU, SB, CC, RB, PD, JV, STD, LAT, JMD, JAZZ, DF, SA (Salsa)

Runden

1, 1A, 1B, R, 2, 3, 4, 5, 6, 7, 8, 9, F, FA, FB, PSR, RSR
(Redance=R, bei 1.VR=1A, bei 2.VR=1B, bei Formations A-Finale=FA, bei B-Finale=FB, Stichrunde bei Gruppen- und Formationswettbewerben mit Ergebnisrelevanz = PSR, Stichrunde bei Gruppen- und Formationswettbewerben ohne Ergebnisrelevanz nur für Relegation = RSR)

Wertungstyp

K (Kreuze), M (Mannschaftspunkte{1..1,5..2..2,5..3}), P (Finalplätze{1..x}),
FK (FormationswertungKreuze), FP (FormationswertungPlätze), JK (JMD-WertungenKreuze),
JP (JMD-WertungenPlätze), JS (JudgingSystem alle Versionen inkl. AJS)

Ergebniscodes

  • 200 OK

  • 403 Login inkorrekt

  • 400 Datenkonstrukt ungültig (Bad request)

  • 404 Ressource existiert nicht (Ergebnis, Funktionär, Starter etc.)

  • 405 Ergebnisupload erst mit Turnierbeginn möglich

  • 406 Media-Type wird nicht unterstützt

  • 415 Neuere Version des Turnierprogramms erforderlich

  • 601 Token abgelehnt

  • 602 Veranstaltung bereits hochgeladen und Datensatz geschlossen

  • 603 Ergebnisupload nach Frist, Turnier wird der nächsten Woche zugerechnet

  • 604 Ergebnisdatensatz unvollständig (Fehlerdetails im response body)

  • 605 Starter nicht startberechtigt in angefragter Turnierart

  • 606 Datenempfang unvollständig

  • 610 Zugriff zur Sandbox abgelehnt, Turnier-ID des Arbeitssystems verwendet

  • Ergebniscodes für Meldeeingänge (z.B. OK, nicht erlaubt, abgelehnt da Doppelmeldung…)

  • Ergebniscodes für Meldebestätigungen (noch offen, bestätigt, abgelehnt)

API-Responses

Schreibzugriffe auf die API liefern ein allgemeines Response-Objekt als JSON zurück:

  • Fehlercode (korrespondiert mit HTTP-Ergebnis-Code) [code]

  • Fehlermeldung [fehler]

  • Detail (optional) [detail]