API: Unterschied zwischen den Versionen
Aus TW-Sportsoft Wiki (Online-Dokumentation)
(66 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Einleitung == | == Einleitung == | ||
− | Über die TW-Sportsoft API ( | + | Über die TW-Sportsoft API (offene Schnittstelle) können externe Systeme angeschlossen werden. |
− | |||
− | |||
+ | Extern anfallende Daten z.B. aus dem Bereich Auswertung/Zeitnahme (Startzeiten, Zielzeiten, Fahrzeiten, Strafzeiten, Meldungen etc.) oder der Race-Control müssen somit nicht manuell erfasst werden, sondern könnten automatisch über diese Schnittstelle an das System übertragen werden. | ||
== Voraussetzungen == | == Voraussetzungen == | ||
# Es muss eine Installation des Veranstaltungssystems mit den Modulen „Online-Nennung“ und „Auswertung“ vorhanden sein. | # Es muss eine Installation des Veranstaltungssystems mit den Modulen „Online-Nennung“ und „Auswertung“ vorhanden sein. | ||
− | # Alle Teilnehmer-Daten müssen mit Startnummern, Wertungsgruppen/Klassen | + | # Alle [[Nennungen Teilnehmer|Teilnehmer-Daten]] müssen mit Startnummern oder Transpondernummern, Wertungsgruppen/Klassen angelegt sein. |
− | # Das Gateway muss über den Systemparameter im Administrationsbereich der Veranstaltung geöffnet werden. | + | # Das Gateway für die API muss über den Systemparameter im Administrationsbereich (Menüpunkt [[Parameter Auswertung|Parameter->Auswertung]]) der Veranstaltung geöffnet werden. |
− | # | + | # Ein API-Key im Administrationsbereich unter dem (Menüpunkt [[Parameter Auswertung|Parameter->Auswertung]]) hinterlegt werden. Ohne API-Key kann mit der API nicht kommuniziert werden. |
<br /> | <br /> | ||
+ | Rechtzeitig vor der Veranstaltung sollten entsprechende Tests mit dem Veranstaltungssystem durchgeführt werden. | ||
− | + | == Autorisierung == | |
− | + | Den API-Key finden Sie unter dem Menüpunkt [[Parameter Global|Parameter->Global]] im Veranstaltungssystem. Achten Sie auf die korrekte Groß-/Kleinschreibung.<br /> | |
+ | '''Status-Code'''<br/> | ||
+ | 401: API-Key nicht korrekt oder API inaktiv. Parameter -> Auswertung im Veranstaltungssystem pruefen.<br/> | ||
== Technik == | == Technik == | ||
Zeile 25: | Zeile 27: | ||
<nowiki>//Daten</nowiki><br /> | <nowiki>//Daten</nowiki><br /> | ||
<nowiki>var data = {</nowiki><br /> | <nowiki>var data = {</nowiki><br /> | ||
− | <nowiki> | + | <nowiki> API_KEY: 'gb8kme29swDpCd9Axd',</nowiki><br /> |
− | <nowiki> | + | <nowiki> ACTION: 'ZEIT_SPEICHERN',</nowiki><br /> |
− | <nowiki> | + | <nowiki> WP_LAUF_NR: '1',</nowiki><br /> |
<nowiki> ART: 'FAHRZEIT',</nowiki><br /> | <nowiki> ART: 'FAHRZEIT',</nowiki><br /> | ||
<nowiki> ZEIT: '320.6',</nowiki><br /> | <nowiki> ZEIT: '320.6',</nowiki><br /> | ||
<nowiki> STARTNUMMER: '5'</nowiki><br /> | <nowiki> STARTNUMMER: '5'</nowiki><br /> | ||
<nowiki> };</nowiki><br /> | <nowiki> };</nowiki><br /> | ||
− | <nowiki>//Request an | + | <nowiki>//Request an API senden</nowiki><br /> |
<nowiki>$.ajax({</nowiki><br /> | <nowiki>$.ajax({</nowiki><br /> | ||
− | <nowiki> url: 'https://www.tw-sportsoft.de/ | + | <nowiki> url: 'https://www.tw-sportsoft.de/MUSTER_VERANSTALTUNG/api.php',</nowiki><br /> |
<nowiki> type: 'POST',</nowiki><br /> | <nowiki> type: 'POST',</nowiki><br /> | ||
<nowiki> data: data</nowiki><br /> | <nowiki> data: data</nowiki><br /> | ||
Zeile 41: | Zeile 43: | ||
<nowiki></script></nowiki><br /> | <nowiki></script></nowiki><br /> | ||
− | === Gateway === | + | === API-URL (Gateway) === |
− | |||
− | |||
− | |||
− | Die Daten sind an folgende | + | Die Daten sind an folgende API-URL (Systemherkunft TW-Sportsoft) zu senden: |
− | https://www. | + | https://www.tw-sportsoft.de/MUSTER_VERANSTALTUNG/api.php |
− | Die Daten sind an folgende | + | Die Daten sind an folgende API-URL (Systemherkunft ADAC Sportabteilung) zu senden: |
− | https://www.adac-sport.com/ | + | https://www.adac-sport.com/MUSTER_VERANSTALTUNG/api.php |
+ | Den URL-Teil '''MUSTER_VERANSTALTUNG''' durch den Verzeichnisnamen der Veranstaltung ersetzen. | ||
== Requests == | == Requests == | ||
Zeile 58: | Zeile 58: | ||
Über diese Funktion werden Zeiten oder Status-Kennzeichen an das System gesendet. | Über diese Funktion werden Zeiten oder Status-Kennzeichen an das System gesendet. | ||
− | Hinweis: Wird eine Zeit | + | Hinweis: Wird eine Zeit zur gleichen Veranstaltung, WP/Lauf-Nummer und Startnummer nochmals gesendet, so wird die vorherige Zeit automatisch überschrieben. Darüber können eventuelle Fehleingaben korrigiert werden. |
{| class="wikitable" | {| class="wikitable" | ||
Zeile 64: | Zeile 64: | ||
! Datenfeld !! Standard-Wert!! Beispiel-Wert(e)!! Datentyp!! Pflichtfeld!! Beschreibung | ! Datenfeld !! Standard-Wert!! Beispiel-Wert(e)!! Datentyp!! Pflichtfeld!! Beschreibung | ||
|- | |- | ||
− | | | + | | API_KEY|| || gb8kme29swDpCd9Axd|| VARCHAR|| ja|| API-Key zur Autorisierung gegenüber der API |
|- | |- | ||
− | | | + | | ACTION|| ZEIT_SPEICHERN|| ZEIT_SPEICHERN|| VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird |
|- | |- | ||
− | | | + | | WP_LAUF_NR || ||1||INTEGER || ja|| Nummer der WP/Lauf |
|- | |- | ||
− | | LAP || ||1||INTEGER || nein|| Rundenzahl | + | | LAP || ||1||INTEGER || nein|| Rundenzahl |
|- | |- | ||
− | | ART || ||START, ZIEL, FAHRZEIT ||VARCHAR || ja|| Art der gesendeten Zeit. Startzeit, Zielzeit oder | + | | ART || ||START, <br />ZIEL,<br />FAHRZEIT, <br />STATUS ||VARCHAR || ja|| Art der gesendeten Zeit. Startzeit, Zielzeit, Fahrzeit oder ein Status-Wert |
|- | |- | ||
− | | STATUS || Folgende Status-Werte können übermittelt werden. 1= DNS 2= DNF 3=DNC 4=DIS ||2||INTEGER || nein|| Eine ggf. gesendete Zeit wird dann ignoriert. | + | | STATUS || Folgende Status-Werte können übermittelt werden. <br />1=DNS <br />2=DNF <br />3=DNC <br />4=DIS ||2||INTEGER || nein|| Eine ggf. gesendete Zeit wird dann ignoriert. |
|- | |- | ||
| ZEIT || ||43591.862 ||DECIMAL(9,3) || ja|| Die Zeit in Sekunden mit Nachkommastellen | | ZEIT || ||43591.862 ||DECIMAL(9,3) || ja|| Die Zeit in Sekunden mit Nachkommastellen | ||
|- | |- | ||
− | | STARTNUMMER || ||15||INTEGER|| ja|| Startnummer des Teilnehmers | + | | STARTNUMMER || ||15||INTEGER|| ja|| Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird |
+ | |- | ||
+ | | TRANSPONDERNR|| ||15||VARCHAR|| ja|| Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird | ||
|} | |} | ||
− | + | '''Status-Codes'''<br/> | |
+ | 201: Zeit erfolgreich gespeichert.<br/> | ||
+ | 500: Zeit konnte nicht gespeichert werden.<br/> | ||
=== Request: Zeiten löschen=== | === Request: Zeiten löschen=== | ||
Zeile 90: | Zeile 94: | ||
! Datenfeld !! Standard-Wert!! Beispiel-Wert(e)!! Datentyp!! Pflichtfeld!! Beschreibung | ! Datenfeld !! Standard-Wert!! Beispiel-Wert(e)!! Datentyp!! Pflichtfeld!! Beschreibung | ||
|- | |- | ||
− | | ACTION|| | + | | ACTION|| ZEIT_LOESCHEN|| ZEIT_LOESCHEN|| VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird |
|- | |- | ||
− | | | + | | WP_LAUF_NR || ||1||INTEGER || ja|| Nummer der WP/Lauf |
|- | |- | ||
− | | | + | | ART || ||START, ZIEL, FAHRZEIT, STATUS ||VARCHAR || ja|| Art der gesendeten Zeit. Startzeit, Zielzeit oder Fahrzeit |
|- | |- | ||
− | | | + | | STARTNUMMER || ||15||INTEGER|| ja|| Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird |
− | |||
− | |||
|- | |- | ||
− | | | + | | TRANSPONDERNR|| ||15||VARCHAR|| ja|| Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
|} | |} | ||
− | + | '''Status-Codes'''<br/> | |
+ | 201: Zeit erfolgreich geloescht.<br/> | ||
+ | 500: Zeit konnte nicht geloescht werden.<br/> | ||
=== Request: Strafzeiten speichern === | === Request: Strafzeiten speichern === | ||
Über diese Funktion werden Strafzeiten an das System gesendet. | Über diese Funktion werden Strafzeiten an das System gesendet. | ||
− | Hinweis: Wird eine | + | Hinweis: Wird eine Strafzeit zu gleicher Veranstaltung, WP/Lauf-Nummer und Startnummer nochmals gesendet, so wird die vorherige automatisch überschrieben. Darüber können eventuelle Fehleingaben korrigiert werden. |
{| class="wikitable" | {| class="wikitable" | ||
Zeile 115: | Zeile 119: | ||
| ACTION|| STRAFZEIT_SPEICHERN || STRAFZEIT_SPEICHERN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | | ACTION|| STRAFZEIT_SPEICHERN || STRAFZEIT_SPEICHERN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | ||
|- | |- | ||
− | | | + | | WP_LAUF_NR || ||1||INTEGER || ja|| Nummer der WP/Lauf |
− | |||
− | |||
|- | |- | ||
| ZEIT || ||10.0 ||DECIMAL(6,3) || ja|| Die Zeit in Sekunden mit Nachkommastellen | | ZEIT || ||10.0 ||DECIMAL(6,3) || ja|| Die Zeit in Sekunden mit Nachkommastellen | ||
Zeile 123: | Zeile 125: | ||
| GRUND|| ||Frühstart ||VARCHAR(50) || nein||Grund für die Strafzeit | | GRUND|| ||Frühstart ||VARCHAR(50) || nein||Grund für die Strafzeit | ||
|- | |- | ||
− | | STARTNUMMER || ||15||INTEGER|| ja|| Startnummer des Teilnehmers | + | | STARTNUMMER || ||15||INTEGER|| ja|| Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird |
+ | |- | ||
+ | | TRANSPONDERNR|| ||15||VARCHAR|| ja|| Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird | ||
|} | |} | ||
− | + | '''Status-Codes'''<br/> | |
+ | 201: Strafzeit erfolgreich gespeichert.<br/> | ||
+ | 400: Strafzeit konnte nicht gespeichert werden. Pflichtfeld-Angaben fehlen.<br/> | ||
+ | 500: Strafzeit konnte nicht gespeichert werden.<br/> | ||
=== Request: Strafzeiten löschen=== | === Request: Strafzeiten löschen=== | ||
Zeile 137: | Zeile 144: | ||
| ACTION|| STRAFZEIT_LOESCHEN || STRAFZEIT_LOESCHEN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | | ACTION|| STRAFZEIT_LOESCHEN || STRAFZEIT_LOESCHEN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | ||
|- | |- | ||
− | | | + | | WP_LAUF_NR || ||1||INTEGER || ja|| Nummer der WP/Lauf |
|- | |- | ||
− | | | + | | STARTNUMMER || ||15||INTEGER|| ja|| Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird |
|- | |- | ||
− | | | + | | TRANSPONDERNR|| ||15||VARCHAR|| ja|| Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
− | |||
− | |||
|} | |} | ||
− | + | '''Status-Codes'''<br/> | |
+ | 201: Strafzeit erfolgreich geloescht.<br/> | ||
+ | 500: Strafzeit konnte nicht geloescht werden.<br/> | ||
=== Request: Meldungen speichern=== | === Request: Meldungen speichern=== | ||
Zeile 156: | Zeile 163: | ||
|- | |- | ||
| ACTION|| LEITSTELLE_MELDUNG_SPEICHERN || LEITSTELLE_MELDUNG_SPEICHERN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | | ACTION|| LEITSTELLE_MELDUNG_SPEICHERN || LEITSTELLE_MELDUNG_SPEICHERN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | ||
− | |||
− | |||
|- | |- | ||
| MELDUNGART_ID || ||3||INTEGER || ja|| 1=Zeitstrafe 2=Unfall 3=Technischer Defekt 4=Information 5=Sonstiges | | MELDUNGART_ID || ||3||INTEGER || ja|| 1=Zeitstrafe 2=Unfall 3=Technischer Defekt 4=Information 5=Sonstiges | ||
Zeile 163: | Zeile 168: | ||
| MELDUNG || ||Motorschaden ||VARCHAR(250) || ja|| Beschreibung der Meldung | | MELDUNG || ||Motorschaden ||VARCHAR(250) || ja|| Beschreibung der Meldung | ||
|- | |- | ||
− | | | + | | WP_LAUF_NR || ||1||INTEGER|| nein|| Nummer der WP/Lauf |
|- | |- | ||
− | | STARTNUMMER || ||15||INTEGER|| nein|| Startnummer des Teilnehmers | + | | STARTNUMMER || ||15||INTEGER|| nein|| Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird |
|- | |- | ||
− | | KZ_OEFFENTLICH || ||0||INTEGER|| ja|| Kennzeichen, ob die Meldung öffentlich angezeigt werden soll | + | | TRANSPONDERNR|| ||15||VARCHAR|| nein|| Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
+ | |- | ||
+ | | KZ_OEFFENTLICH || ||0||INTEGER|| ja|| 1=Kennzeichen, ob die Meldung öffentlich angezeigt werden soll <br/> 0=nur eine interne Information an die Leitstelle | ||
|- | |- | ||
| MELDUNG_ID || ||12345||INTEGER|| nein|| Externe ID der gesendeten Meldung | | MELDUNG_ID || ||12345||INTEGER|| nein|| Externe ID der gesendeten Meldung | ||
|} | |} | ||
+ | '''Status-Codes'''<br/> | ||
+ | 201: Meldung erfolgreich gespeichert.<br/> | ||
+ | 400: Meldung konnte nicht gespeichert werden. Pflichtfeld-Angaben fehlen.<br/> | ||
+ | 500: Meldung konnte nicht gespeichert werden.<br/> | ||
=== Request: Meldungen löschen=== | === Request: Meldungen löschen=== | ||
− | Über diese Funktion werden Meldungen an das System gesendet. Um Meldungen löschen zu können muss eine eindeutige externe Meldungsid oder Startnummer mit WP-/Lauf-Nr. übergeben werden. | + | Über diese Funktion werden Meldungen an das System gesendet. Um Meldungen löschen zu können, muss eine eindeutige externe Meldungsid oder Startnummer mit WP-/Lauf-Nr. übergeben werden. |
{| class="wikitable" | {| class="wikitable" | ||
Zeile 183: | Zeile 194: | ||
| ACTION|| LEITSTELLE_MELDUNG_LOESCHEN || LEITSTELLE_MELDUNG_LOESCHEN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | | ACTION|| LEITSTELLE_MELDUNG_LOESCHEN || LEITSTELLE_MELDUNG_LOESCHEN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | ||
|- | |- | ||
− | | | + | | MELDUNG_ID || ||12345||INTEGER|| ja|| Externe ID der gesendeten Meldung |
+ | |} | ||
+ | '''Status-Codes'''<br/> | ||
+ | 201: Meldung Externe ID erfolgreich geloescht.<br/> | ||
+ | 400: Meldung Externe ID konnte nicht geloescht werden. Pflichtfeld-Angaben fehlen.<br/> | ||
+ | 500: Meldung Externe ID konnte nicht geloescht werden.<br/> | ||
+ | |||
+ | === Request: Dokumente (virtueller Aushang) speichern=== | ||
+ | |||
+ | Über diese Funktion werden Dokumente für den virtuellen Aushang an das System gesendet. | ||
+ | |||
+ | {| class="wikitable" | ||
|- | |- | ||
− | | | + | ! Datenfeld !! Standard-Wert!! Beispiel-Wert(e)!! Datentyp!! Pflichtfeld!! Beschreibung |
+ | |- | ||
+ | | ACTION|| VIRTUELLER_AUSHANG_DOKUMENT_SPEICHERN || VIRTUELLER_AUSHANG_DOKUMENT_SPEICHERN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | ||
+ | |- | ||
+ | | DOKUMENT_ID_EXTERN || ||123||INTEGER || ja|| Eindeutige externe ID zum Dokument | ||
+ | |- | ||
+ | | DOKUMENT_ART_ID || ||5||INTEGER || ja|| Eindeutige ID der Art des Dokuments zur Gruppierung | ||
+ | |- | ||
+ | | BEZEICHNUNG || ||Strafe||VARCHAR(150) || ja|| Bezeichnung des Dokuments | ||
+ | |- | ||
+ | | ZEITPUNKT|| ||2020-01-01 10:15:20||DATETIME || nein|| Zeitpunkt des Dokuments | ||
+ | |- | ||
+ | | BESCHREIBUNG|| ||Ausführliche Beschreibung||VARCHAR(250) || nein|| Optionale ausführliche Beschreibung des Dokuments | ||
+ | |- | ||
+ | | DOKUMENT_DATEI|| ||||FILE|| nein|| Dokument als PDF-Datei | ||
+ | |- | ||
+ | | KZ_SPRACHE|| ||1||INTEGER|| nein|| Kennzeichen der Sprache | ||
+ | |- | ||
+ | | WP_LAUF_NR || ||1||INTEGER|| nein|| Nummer der WP/Lauf | ||
+ | |- | ||
+ | | TEILNEHMER_ID|| ||15||INTEGER|| nein|| Eindeutige Zuordnung des Teilnehmers, sofern Startnummer oder Transpondernummer nicht eindeutig sind | ||
+ | |- | ||
+ | | STARTNUMMER || ||15||INTEGER|| nein|| Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird | ||
+ | |- | ||
+ | | TRANSPONDERNR|| ||15||VARCHAR|| nein|| Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird | ||
+ | |- | ||
+ | | PRAEDIKAT_ID || ||3||INTEGER || nein|| Eindeutige ID des Prädikates zur Zuordnung | ||
+ | |- | ||
+ | | PRAEDIKAT_BEZEICHNUNG_KURZ || ||20||VARCHAR|| nein|| Eindeutige Kurzbezeichnung des Prädikates zur Zuordnung, sofern eindeutige Prädikat-ID nicht bekannt ist | ||
+ | |- | ||
+ | | WERTUNGSGRUPPE_ID|| ||3||INTEGER || nein|| Eindeutige ID der Wertungsgruppe zur Zuordnung | ||
+ | |- | ||
+ | | WERTUNGSGRUPPE_BEZEICHNUNG_KURZ|| ||20||VARCHAR|| nein|| Eindeutige Kurzbezeichnung der Wertungsgruppe zur Zuordnung, sofern eindeutige Wertungsgruppen-ID nicht bekannt ist | ||
+ | |- | ||
+ | | KZ_ZEITNAHME|| ||0||INTEGER|| nein|| 1=Dokument für die Zeitnahme relevant <br/> 0=Dokument nicht für die Zeitnahme relevant | ||
+ | |- | ||
+ | | KZ_GELDSTRAFE|| ||0||INTEGER|| nein|| 1=Dokument beinhaltet eine Geldstrafe <br/> 0=Dokument beinhaltet keine Geldstrafe | ||
+ | |- | ||
+ | | GELDSTRAFE_BETRAG|| ||0||DECIMAL(15,2)|| nein|| Betrag der Geldstrafe | ||
|- | |- | ||
− | | | + | | KZ_OEFFENTLICH || ||0||INTEGER|| ja|| 1=Kennzeichen, ob die Meldung öffentlich angezeigt werden soll <br/> 0=nur eine interne Information an die Leitstelle |
|- | |- | ||
− | | | + | | EMAIL_TEILNEHMER_SENDEN|| ||1||INTEGER|| nein|| Kennzeichen für automatischen Versand des Dokumentes an den zugeordneten Teilnehmer |
|- | |- | ||
− | | | + | | KZ_PUSH_NOTIFICATION_SENDEN|| ||1||INTEGER|| nein|| Kennzeichen für automatischen Versand des Dokumentes an die App |
|} | |} | ||
+ | '''Status-Codes'''<br/> | ||
+ | 201: Dokument Externe ID erfolgreich gespeichert.<br/> | ||
+ | 400: Dokument konnte nicht gespeichert werden. Pflichtfeld-Angaben fehlen.<br/> | ||
+ | 500: Dokument konnte nicht gespeichert werden.<br/> | ||
+ | |||
+ | |||
+ | === Request: Dokumente (virtueller Aushang) löschen=== | ||
+ | Um Dokumente löschen zu können, muss eine eindeutige externe ID zum Dokument übergeben werden. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Datenfeld !! Standard-Wert!! Beispiel-Wert(e)!! Datentyp!! Pflichtfeld!! Beschreibung | ||
+ | |- | ||
+ | | ACTION|| VIRTUELLER_AUSHANG_DOKUMENT_LOESCHEN|| VIRTUELLER_AUSHANG_DOKUMENT_LOESCHEN|| VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | ||
+ | |- | ||
+ | | DOKUMENT_ID_EXTERN || ||123||INTEGER || ja|| Eindeutige externe ID zum Dokument | ||
+ | |} | ||
+ | '''Status-Codes'''<br/> | ||
+ | 201: Dokument Externe ID erfolgreich geloescht.<br/> | ||
+ | 400: Dokument Externe ID konnte nicht geloescht werden. Pflichtfeld-Angaben fehlen.<br/> | ||
+ | 500: Dokument Externe ID konnte nicht geloescht werden.<br/> | ||
=== Request: Kennzeichen setzen=== | === Request: Kennzeichen setzen=== | ||
Zeile 205: | Zeile 286: | ||
| ACTION|| KENNZEICHEN_SETZEN || KENNZEICHEN_SETZEN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | | ACTION|| KENNZEICHEN_SETZEN || KENNZEICHEN_SETZEN || VARCHAR|| ja|| Angabe, welche Aktion ausgeführt wird | ||
|- | |- | ||
− | + | | KENNZEICHEN_ART || ||KZ_DOKU_ABNAHME_ERLEDIGT<br /> KZ_TECHN_ABNAHME_ERLEDIGT<br /> KZ_STARTBERECHTIGT <br /> | |
− | + | KZ_GESTARTET <br /> | |
− | | KENNZEICHEN_ART || ||KZ_DOKU_ABNAHME_ERLEDIGT KZ_TECHN_ABNAHME_ERLEDIGT KZ_STARTBERECHTIGT KZ_GESTARTET KZ_ZIELANKUNFT KZ_PARC_FERME | + | KZ_ZIELANKUNFT <br /> |
+ | KZ_PARC_FERME <br /> | ||
+ | KZ_AUSWERTUNG_DNF<br /> | ||
+ | KZ_AUSWERTUNG_DNC<br /> | ||
+ | KZ_AUSWERTUNG_DIS<br /> | ||
+ | ||VARCHAR|| ja|| Art des Kennzeichens, welches gesetzt werden soll | ||
|- | |- | ||
− | | KENNZEICHEN_WERT || ||1||INTEGER || || 1=Kennzeichen setzen 0=Kennzeichen entfernen | + | | KENNZEICHEN_WERT || ||1||INTEGER || ja || 1=Kennzeichen setzen <br/>0=Kennzeichen entfernen |
− | |||
|- | |- | ||
− | | | + | | STARTNUMMER || ||15||INTEGER|| ja|| Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird |
|- | |- | ||
− | | | + | | TRANSPONDERNR|| ||15||VARCHAR|| ja|| Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
|} | |} | ||
+ | '''Status-Codes'''<br/> | ||
+ | 201: Kennzeichen-Art bei Teilnehmer-ID erfolgreich gespeichert.<br/> | ||
+ | 400: Kennzeichen-Art konnte nicht gespeichert werden. Kennzeichen-Art unbekannt.<br/> | ||
+ | 400: Kennzeichen-Art konnte nicht gespeichert werden. Pflichtfeld-Angaben fehlen.<br/> | ||
+ | 500: Kennzeichen-Art konnte nicht gespeichert werden.<br/> | ||
+ | |||
+ | == Sonstige Hinweise == | ||
+ | * Als LAP=0 kann eine Gesamt-Fahrzeit übermittelt werden | ||
+ | * Als LAP=1-n können einzelne Rundenzeiten übermittelt werden | ||
+ | * Der Status (z.B. 2=DNF) für einen Lauf ist der LAP=0 zuzuweisen | ||
+ | |||
+ | == Version == | ||
+ | 1.4 | Stand: 03.07.2023 |
Aktuelle Version vom 3. Juli 2023, 13:44 Uhr
Inhaltsverzeichnis
- 1 Einleitung
- 2 Voraussetzungen
- 3 Autorisierung
- 4 Technik
- 5 Requests
- 5.1 Request: Zeiten speichern
- 5.2 Request: Zeiten löschen
- 5.3 Request: Strafzeiten speichern
- 5.4 Request: Strafzeiten löschen
- 5.5 Request: Meldungen speichern
- 5.6 Request: Meldungen löschen
- 5.7 Request: Dokumente (virtueller Aushang) speichern
- 5.8 Request: Dokumente (virtueller Aushang) löschen
- 5.9 Request: Kennzeichen setzen
- 6 Sonstige Hinweise
- 7 Version
Einleitung
Über die TW-Sportsoft API (offene Schnittstelle) können externe Systeme angeschlossen werden.
Extern anfallende Daten z.B. aus dem Bereich Auswertung/Zeitnahme (Startzeiten, Zielzeiten, Fahrzeiten, Strafzeiten, Meldungen etc.) oder der Race-Control müssen somit nicht manuell erfasst werden, sondern könnten automatisch über diese Schnittstelle an das System übertragen werden.
Voraussetzungen
- Es muss eine Installation des Veranstaltungssystems mit den Modulen „Online-Nennung“ und „Auswertung“ vorhanden sein.
- Alle Teilnehmer-Daten müssen mit Startnummern oder Transpondernummern, Wertungsgruppen/Klassen angelegt sein.
- Das Gateway für die API muss über den Systemparameter im Administrationsbereich (Menüpunkt Parameter->Auswertung) der Veranstaltung geöffnet werden.
- Ein API-Key im Administrationsbereich unter dem (Menüpunkt Parameter->Auswertung) hinterlegt werden. Ohne API-Key kann mit der API nicht kommuniziert werden.
Rechtzeitig vor der Veranstaltung sollten entsprechende Tests mit dem Veranstaltungssystem durchgeführt werden.
Autorisierung
Den API-Key finden Sie unter dem Menüpunkt Parameter->Global im Veranstaltungssystem. Achten Sie auf die korrekte Groß-/Kleinschreibung.
Status-Code
401: API-Key nicht korrekt oder API inaktiv. Parameter -> Auswertung im Veranstaltungssystem pruefen.
Technik
Die Daten müssen als POST-Daten mittels einem Request versendet werden.
Beispiel – JavaScript
<script>
$(document).ready(function() {
//Daten
var data = {
API_KEY: 'gb8kme29swDpCd9Axd',
ACTION: 'ZEIT_SPEICHERN',
WP_LAUF_NR: '1',
ART: 'FAHRZEIT',
ZEIT: '320.6',
STARTNUMMER: '5'
};
//Request an API senden
$.ajax({
url: 'https://www.tw-sportsoft.de/MUSTER_VERANSTALTUNG/api.php',
type: 'POST',
data: data
});
});
</script>
API-URL (Gateway)
Die Daten sind an folgende API-URL (Systemherkunft TW-Sportsoft) zu senden: https://www.tw-sportsoft.de/MUSTER_VERANSTALTUNG/api.php
Die Daten sind an folgende API-URL (Systemherkunft ADAC Sportabteilung) zu senden: https://www.adac-sport.com/MUSTER_VERANSTALTUNG/api.php
Den URL-Teil MUSTER_VERANSTALTUNG durch den Verzeichnisnamen der Veranstaltung ersetzen.
Requests
Request: Zeiten speichern
Über diese Funktion werden Zeiten oder Status-Kennzeichen an das System gesendet. Hinweis: Wird eine Zeit zur gleichen Veranstaltung, WP/Lauf-Nummer und Startnummer nochmals gesendet, so wird die vorherige Zeit automatisch überschrieben. Darüber können eventuelle Fehleingaben korrigiert werden.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
API_KEY | gb8kme29swDpCd9Axd | VARCHAR | ja | API-Key zur Autorisierung gegenüber der API | |
ACTION | ZEIT_SPEICHERN | ZEIT_SPEICHERN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
WP_LAUF_NR | 1 | INTEGER | ja | Nummer der WP/Lauf | |
LAP | 1 | INTEGER | nein | Rundenzahl | |
ART | START, ZIEL, FAHRZEIT, STATUS |
VARCHAR | ja | Art der gesendeten Zeit. Startzeit, Zielzeit, Fahrzeit oder ein Status-Wert | |
STATUS | Folgende Status-Werte können übermittelt werden. 1=DNS 2=DNF 3=DNC 4=DIS |
2 | INTEGER | nein | Eine ggf. gesendete Zeit wird dann ignoriert. |
ZEIT | 43591.862 | DECIMAL(9,3) | ja | Die Zeit in Sekunden mit Nachkommastellen | |
STARTNUMMER | 15 | INTEGER | ja | Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird | |
TRANSPONDERNR | 15 | VARCHAR | ja | Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
Status-Codes
201: Zeit erfolgreich gespeichert.
500: Zeit konnte nicht gespeichert werden.
Request: Zeiten löschen
Über diese Funktion können Zeiten aus dem System entfernt werden.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
ACTION | ZEIT_LOESCHEN | ZEIT_LOESCHEN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
WP_LAUF_NR | 1 | INTEGER | ja | Nummer der WP/Lauf | |
ART | START, ZIEL, FAHRZEIT, STATUS | VARCHAR | ja | Art der gesendeten Zeit. Startzeit, Zielzeit oder Fahrzeit | |
STARTNUMMER | 15 | INTEGER | ja | Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird | |
TRANSPONDERNR | 15 | VARCHAR | ja | Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
Status-Codes
201: Zeit erfolgreich geloescht.
500: Zeit konnte nicht geloescht werden.
Request: Strafzeiten speichern
Über diese Funktion werden Strafzeiten an das System gesendet. Hinweis: Wird eine Strafzeit zu gleicher Veranstaltung, WP/Lauf-Nummer und Startnummer nochmals gesendet, so wird die vorherige automatisch überschrieben. Darüber können eventuelle Fehleingaben korrigiert werden.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
ACTION | STRAFZEIT_SPEICHERN | STRAFZEIT_SPEICHERN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
WP_LAUF_NR | 1 | INTEGER | ja | Nummer der WP/Lauf | |
ZEIT | 10.0 | DECIMAL(6,3) | ja | Die Zeit in Sekunden mit Nachkommastellen | |
GRUND | Frühstart | VARCHAR(50) | nein | Grund für die Strafzeit | |
STARTNUMMER | 15 | INTEGER | ja | Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird | |
TRANSPONDERNR | 15 | VARCHAR | ja | Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
Status-Codes
201: Strafzeit erfolgreich gespeichert.
400: Strafzeit konnte nicht gespeichert werden. Pflichtfeld-Angaben fehlen.
500: Strafzeit konnte nicht gespeichert werden.
Request: Strafzeiten löschen
Über diese Funktion können Strafzeiten aus dem System entfernt werden.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
ACTION | STRAFZEIT_LOESCHEN | STRAFZEIT_LOESCHEN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
WP_LAUF_NR | 1 | INTEGER | ja | Nummer der WP/Lauf | |
STARTNUMMER | 15 | INTEGER | ja | Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird | |
TRANSPONDERNR | 15 | VARCHAR | ja | Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
Status-Codes
201: Strafzeit erfolgreich geloescht.
500: Strafzeit konnte nicht geloescht werden.
Request: Meldungen speichern
Über diese Funktion werden Meldungen an das System gesendet.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
ACTION | LEITSTELLE_MELDUNG_SPEICHERN | LEITSTELLE_MELDUNG_SPEICHERN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
MELDUNGART_ID | 3 | INTEGER | ja | 1=Zeitstrafe 2=Unfall 3=Technischer Defekt 4=Information 5=Sonstiges | |
MELDUNG | Motorschaden | VARCHAR(250) | ja | Beschreibung der Meldung | |
WP_LAUF_NR | 1 | INTEGER | nein | Nummer der WP/Lauf | |
STARTNUMMER | 15 | INTEGER | nein | Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird | |
TRANSPONDERNR | 15 | VARCHAR | nein | Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird | |
KZ_OEFFENTLICH | 0 | INTEGER | ja | 1=Kennzeichen, ob die Meldung öffentlich angezeigt werden soll 0=nur eine interne Information an die Leitstelle | |
MELDUNG_ID | 12345 | INTEGER | nein | Externe ID der gesendeten Meldung |
Status-Codes
201: Meldung erfolgreich gespeichert.
400: Meldung konnte nicht gespeichert werden. Pflichtfeld-Angaben fehlen.
500: Meldung konnte nicht gespeichert werden.
Request: Meldungen löschen
Über diese Funktion werden Meldungen an das System gesendet. Um Meldungen löschen zu können, muss eine eindeutige externe Meldungsid oder Startnummer mit WP-/Lauf-Nr. übergeben werden.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
ACTION | LEITSTELLE_MELDUNG_LOESCHEN | LEITSTELLE_MELDUNG_LOESCHEN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
MELDUNG_ID | 12345 | INTEGER | ja | Externe ID der gesendeten Meldung |
Status-Codes
201: Meldung Externe ID erfolgreich geloescht.
400: Meldung Externe ID konnte nicht geloescht werden. Pflichtfeld-Angaben fehlen.
500: Meldung Externe ID konnte nicht geloescht werden.
Request: Dokumente (virtueller Aushang) speichern
Über diese Funktion werden Dokumente für den virtuellen Aushang an das System gesendet.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
ACTION | VIRTUELLER_AUSHANG_DOKUMENT_SPEICHERN | VIRTUELLER_AUSHANG_DOKUMENT_SPEICHERN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
DOKUMENT_ID_EXTERN | 123 | INTEGER | ja | Eindeutige externe ID zum Dokument | |
DOKUMENT_ART_ID | 5 | INTEGER | ja | Eindeutige ID der Art des Dokuments zur Gruppierung | |
BEZEICHNUNG | Strafe | VARCHAR(150) | ja | Bezeichnung des Dokuments | |
ZEITPUNKT | 2020-01-01 10:15:20 | DATETIME | nein | Zeitpunkt des Dokuments | |
BESCHREIBUNG | Ausführliche Beschreibung | VARCHAR(250) | nein | Optionale ausführliche Beschreibung des Dokuments | |
DOKUMENT_DATEI | FILE | nein | Dokument als PDF-Datei | ||
KZ_SPRACHE | 1 | INTEGER | nein | Kennzeichen der Sprache | |
WP_LAUF_NR | 1 | INTEGER | nein | Nummer der WP/Lauf | |
TEILNEHMER_ID | 15 | INTEGER | nein | Eindeutige Zuordnung des Teilnehmers, sofern Startnummer oder Transpondernummer nicht eindeutig sind | |
STARTNUMMER | 15 | INTEGER | nein | Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird | |
TRANSPONDERNR | 15 | VARCHAR | nein | Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird | |
PRAEDIKAT_ID | 3 | INTEGER | nein | Eindeutige ID des Prädikates zur Zuordnung | |
PRAEDIKAT_BEZEICHNUNG_KURZ | 20 | VARCHAR | nein | Eindeutige Kurzbezeichnung des Prädikates zur Zuordnung, sofern eindeutige Prädikat-ID nicht bekannt ist | |
WERTUNGSGRUPPE_ID | 3 | INTEGER | nein | Eindeutige ID der Wertungsgruppe zur Zuordnung | |
WERTUNGSGRUPPE_BEZEICHNUNG_KURZ | 20 | VARCHAR | nein | Eindeutige Kurzbezeichnung der Wertungsgruppe zur Zuordnung, sofern eindeutige Wertungsgruppen-ID nicht bekannt ist | |
KZ_ZEITNAHME | 0 | INTEGER | nein | 1=Dokument für die Zeitnahme relevant 0=Dokument nicht für die Zeitnahme relevant | |
KZ_GELDSTRAFE | 0 | INTEGER | nein | 1=Dokument beinhaltet eine Geldstrafe 0=Dokument beinhaltet keine Geldstrafe | |
GELDSTRAFE_BETRAG | 0 | DECIMAL(15,2) | nein | Betrag der Geldstrafe | |
KZ_OEFFENTLICH | 0 | INTEGER | ja | 1=Kennzeichen, ob die Meldung öffentlich angezeigt werden soll 0=nur eine interne Information an die Leitstelle | |
EMAIL_TEILNEHMER_SENDEN | 1 | INTEGER | nein | Kennzeichen für automatischen Versand des Dokumentes an den zugeordneten Teilnehmer | |
KZ_PUSH_NOTIFICATION_SENDEN | 1 | INTEGER | nein | Kennzeichen für automatischen Versand des Dokumentes an die App |
Status-Codes
201: Dokument Externe ID erfolgreich gespeichert.
400: Dokument konnte nicht gespeichert werden. Pflichtfeld-Angaben fehlen.
500: Dokument konnte nicht gespeichert werden.
Request: Dokumente (virtueller Aushang) löschen
Um Dokumente löschen zu können, muss eine eindeutige externe ID zum Dokument übergeben werden.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
ACTION | VIRTUELLER_AUSHANG_DOKUMENT_LOESCHEN | VIRTUELLER_AUSHANG_DOKUMENT_LOESCHEN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
DOKUMENT_ID_EXTERN | 123 | INTEGER | ja | Eindeutige externe ID zum Dokument |
Status-Codes
201: Dokument Externe ID erfolgreich geloescht.
400: Dokument Externe ID konnte nicht geloescht werden. Pflichtfeld-Angaben fehlen.
500: Dokument Externe ID konnte nicht geloescht werden.
Request: Kennzeichen setzen
Über diese Funktion können entsprechende Kennzeichen der Teilnehmer gesetzt werden. Dabei werden die bestehenden Kennzeichen immer durch den aktuellen Wert überschrieben.
Datenfeld | Standard-Wert | Beispiel-Wert(e) | Datentyp | Pflichtfeld | Beschreibung |
---|---|---|---|---|---|
ACTION | KENNZEICHEN_SETZEN | KENNZEICHEN_SETZEN | VARCHAR | ja | Angabe, welche Aktion ausgeführt wird |
KENNZEICHEN_ART | KZ_DOKU_ABNAHME_ERLEDIGT KZ_TECHN_ABNAHME_ERLEDIGT KZ_STARTBERECHTIGT KZ_GESTARTET |
VARCHAR | ja | Art des Kennzeichens, welches gesetzt werden soll | |
KENNZEICHEN_WERT | 1 | INTEGER | ja | 1=Kennzeichen setzen 0=Kennzeichen entfernen | |
STARTNUMMER | 15 | INTEGER | ja | Startnummer des Teilnehmers , sofern keine Transpondernummer übermittelt wird | |
TRANSPONDERNR | 15 | VARCHAR | ja | Transpondernummer des Teilnehmers, sofern keine Startnummer übermittelt wird |
Status-Codes
201: Kennzeichen-Art bei Teilnehmer-ID erfolgreich gespeichert.
400: Kennzeichen-Art konnte nicht gespeichert werden. Kennzeichen-Art unbekannt.
400: Kennzeichen-Art konnte nicht gespeichert werden. Pflichtfeld-Angaben fehlen.
500: Kennzeichen-Art konnte nicht gespeichert werden.
Sonstige Hinweise
- Als LAP=0 kann eine Gesamt-Fahrzeit übermittelt werden
- Als LAP=1-n können einzelne Rundenzeiten übermittelt werden
- Der Status (z.B. 2=DNF) für einen Lauf ist der LAP=0 zuzuweisen
Version
1.4 | Stand: 03.07.2023