Simple API

Mit der Simple API können Sie Daten Ihrer Veranstaltungsdatei über einen statischen Link verfügbar machen. Über den Link können die Daten abgerufen werden, ohne sich in den Kundenaccount einzuloggen.

Einstellungen hierfür nehmen Sie unter Hauptfenster->Zugriffsrechte/Freigaben vor. Wählen Sie zunächst, welche Art von Daten Sie zur Verfügung stellen möchten und wählen dann die Liste oder geben den entsprechenden Ausdruck ein.

Sie können aus folgenden API Typen wählen:

Das Symbol in der Link-Spalte führt Sie zum statischen Link, über den die Daten abgerufen werden können.

APIs werden für 10-30 Sekunden zwischengespeichert, sodass eine häufigere Abfrage nicht zwangsläufig eine korrekte Aktualisierung der Daten bedeutet. Wenn Sie es nicht schaffen, die Daten wie gewünscht über die Simple API aufzubereiten, gibt es mit hoher Wahrscheinlichkeit einen benutzerdefinierten Weg. Bitte wenden Sie sich in diesem Fall an den Support.

Die Simple API ist auf eine Abrufrate von 1 Call pro Sekunde je eindeutiger API URL begrenzt. Wenn ihr Skript die API häufiger abruft, erhalten Sie eine 406 Fehlermeldung. Wenn Sie eine häufigere Abrufrate benötigen, wenden Sie sich bitte an den Support.

Benutzerdefinierte APIs

Benutzerdefinierte APIs ermöglichen Ihnen eine weitere Verfeinerung von API Ausgaben sowie weitere, fortgeschrittene Funktionen.

Die nachfolgende Dokumentation stellt einige der Funktionen von benutzerdefinierten APIs vor. Haben Sie besondere Anforderungen, wenden Sie sich mit diesen an den race|result Support.

Eigene Counter

So wie die voreingestellten Counter die Teilnehmer des ausgewählten Wettbewerbs zählen, so können Sie einen beliebigen Filter anwenden, um eine Anzahl Teilnehmer über die API zu übermitteln.

Hierfür schreiben Sie eine benutzerdefinierte API mit:

Data/count?filter=

Nun können Sie einen gewöhnlichen Ausdruck als Filter verwenden (Vorsicht: Ausdruck muss auf Englisch sein), z.B. [Contest]=1 AND [Firstname]="Max". Der Ausdruck allerdings muss URL encoded sein. 

Im Beispiel wird daraus: %5BContest%5D%3D1AND%5BFirstname%5D%3D%22Max%22

Der gesamte Filter lautet also:
Data/count?filter=%5BContest%5D%3D1AND%5BFirstname%5D%3D%22Max%22

Daten aus Listen

Daten aus Listen

In manchen Fällen möchten Sie lediglich weitere Filter auf Ausgabelisten legen oder anpassen, ohne jeweils weitere Ausgabelisten anzulegen. Um per Simple API auf Daten aus Listen zuzugreifen, erstellen Sie eine benutzerdefinierte API mit:

data/list?

An diesen Ausdruck können Sie weitere Parameter anhängen. Parameter können entweder im API Ausdruck in RACE RESULT 12 angehängt werden, wenn sie sich auf alle API Aufrufe beziehen sollen, oder an die URL angehängt werden, wenn der Parameter nur für diesen Aufruf gelten soll. Wenn Sie den Ausdruck an die URL anhängen, setzen Sie ein "?" vor den ersten Parameter. Beachten Sie, dass die Standard-Feldnamen im String Englisch sein müssen.

&fields=
Bestimmt, welche Felder aufgelistet werden. Mehrere Felder müssen mit "%2C", dem URL codierten Format von ",", verbunden werden.

&sort=
Bestimmt, wie die Daten sortiert werden.

&filterbib=
Filtert die Liste nach der Startnr.

&filter=
Ermöglicht das Filtern. Mehrere Filter können über AND verbunden werden, Sonderzeichen im String müssen mit dem entsprechend URL codierten Äquivalent geschrieben.

&listformat=
Bestimmt das Format der Liste (z.B. Simple, CSV, XML, JSON)

&separator=
Bestimmt das Trennzeichen im TEXT- oder CSV-Format

 

Beispiel:

API Details: data/list?lang=de&fields=RiderID%2CFirstName%2CLastName%2CMaleFemale%2CDateOfBirth%2CATF12%2CATF13
URL: https://api.raceresult.com/111952/6XENXE0KZY1NBFJDB57UQWS14R0L6R2H

Liefert eine Liste aller Fahrer mit der RiderID (ZTF), Vorname, Nachname, MännerFrauen (benutzerdef. Feld), Geburtstag, ZTF12 und ZTF13 in einem Standard TEXT Format.

Durch Anhängen weiterer Parameter kann die Liste beim Aufruf nach der Startnummer gefiltert und das Format zu XML angepasst werden.

https://api.raceresult.com/111952/6XENXE0KZY1NBFJDB57UQWS14R0L6R2H?&filterbib=11&listformat=XML

Felder aktualisieren

Sie können Werte in race|result 11 durch benutzerdefinierte API Aufrufe ändern. Änderungen können in sämtlichen Feldern vorgenommen werden, inkl. Teilnehmerdaten, ZTF / ZJN Felder, Status, Kommentar u.v.m. 

Um Änderungen durchzuführen, nutzen Sie eine benutzerdefinierte API mit:

part/savevalue?

An diesen Ausdruck können Sie weitere Parameter anhängen. Parameter können entweder im API Ausdruck in race|result 11 angehängt werden, wenn sie sich auf alle API Aufrufe beziehen sollen, oder an die URL angehängt werden, wenn der Parameter nur für diesen Aufruf gelten soll. Wenn Sie den Ausdruck an die URL anhängen, setzen Sie ein "?" vor den ersten Parameter. Beachten Sie, dass die Standard-Feldnamen im String Englisch sein müssen.

&bib=
Die Startnummer, für die Werte aktualisiert werden sollen. Änderungen können auf diese Weise immer nur für eine Startnummer vorgenommen werden.

&fieldname=
Das Feld, dessen Inhalt geändert werden soll.

&value=
Der neue Wert für das Feld.

&nohistory=
Wenn die Änderung in der Teilnehmerhistorie gespeichert werden soll, setzen Sie den Wert auf 0, ansonsten auf 1.

 

Beispiel:

API Details: part/savevalue?lang=en
URL: https://api.raceresult.com/111952/FCMAAKQOYEI6YHU7JBAM6YLK8J5485TG?&bib=11&fieldname=Status&value=4&nohistory=0

Setzt den Status-Wert von Startnummer 11 auf 4 (DNS). Die Änderung wird in der Teilnehmerhistorie gespeichert.

Teilnehmer einfügen / aktualisieren

Teilnehmer können über eine POST-Anfrage, die die Teilnehmerdaten im Body enthält, in RACE RESULT 12 geschrieben werden. Die Anfrage führt auch Änderungen an bereits bestehenden Teilnehmerdaten basierend auf der Startnummer als eindeutiges Kriterium durch. Wenn Sie Teilnehmer updaten, werden Altersklassen nicht automatisch angepasst. Diese müssen manuell aktualisiert werden.

Um Teilnehmer zu schreiben / aktualisieren, verwenden Sie eine benutzerdefinierte API mit:

part/savefields?&lang=en

 

Body

Teilnehmerdaten sollten im JSON Format geparsed werden. Sie können eine beliebige Anzahl Felder senden. Nur die aufgeführten Felder werden beschrieben / aktualisiert. Beachten Sie, dass die Startnummer als eindeutige ID immer gesendet werden muss. Das Format sieht wie folgt aus:

{"Bib":"123","CreatedBy":"Username","Lastname":"Doe","Firstname":"John","DateOfBirth":"1993-01-01","Sex":"m","Contest":"1","ATF1":"Red"}

Um mehrere Teilnehmer auf einmal zu senden, wird das Format wie folgt erweitert:

[{ Participant Data 1.....},{ Participant Data 2.....},{ Participant Data 3.....}]

Der gesamte Body ist in eckige Klammern gehüllt, mit Kommata zwischen den einzelnen Teilnehmern.

Ausnahmen bei Feldern in benutzerdefinierten APIs

APIs können verwendet werden, um jedes beliebige Eingabe-Datenfeld abzurufen und zu ändern. Abgeleitete/Berechnete Felder können nicht über APIs beschrieben oder upgedated werden.

Da APIs direkt mit der Datenbank verbunden sind, gibt es einige Felder, die intern einen anderen Namen haben, als bspw. beim Abrufen in Ausgabelisten.

Gender - Intern als Sex angelegt

State - Lediglich für Amerikanische Bundesstaaten ist die Abkürzung intern als State2 angelegt.

RaceMap Access

Um die Teilnehmerdaten aus race|result 11 an Racemap zu übertragen, müssen Sie die entsprechende Simple API unter Hauptfenster > Zugriffsrechte/Freigaben einrichten. Wählen Sie den Typ "Racemap Access".


 

Die benötigten Felder werden standardmäßig gesetzt. Für die meisten Veranstaltungen sind diese Standardeinstellungen ausreichend, Sie können diese aber wo benötigt ändern.

  • Id: muss einen numerischen Wert beinhalten, der für jeden Teilnehmer eindeutig in der Veranstaltungsdatei ist und sich nicht ändern kann.
  • RaceNr: dieses Feld wird in der Visualisierung im Teilnehmer-Fähnchen angezeigt. Üblicherweise ist es die Startnummer, kann aber auch alles andere sein (auch Text oder Emoji) und muss nicht eindeutig sein.
  • Transponder1 and Transponder2: Chip codes, die dem Teilnehmer über die entsprechenden Datenfelder zugewiesen sind. Wenn Sie ein Chip File verwenden, ersetzen Sie Transponder1 durch TransponderInChipFile.
  • Contest: Üblicherweise der Wettbewerb, wie er in race|result 11 verwendet wird. Sie können Teilnehmer in diesem Feld aber beliebig gruppieren, z.B. wenn Teilnehmer des gleichen Wettbewerbs unterschiedliche Strecken absolvieren.
  • Visibility: lassen Sie diesen Wert auf "public", damit Teilnehmer in Racemap angezeigt werden.
  • Start and Finish: müssen die Start- und Zielzeit der Teilnehmer als Tageszeit in UTC beinhalten oder leer bleiben. Wenn ausgefüllt, ignoriert Racemap Trackpings vor Start oder nach Zieleinlauf. Es ist daher sehr wichtig, diese Felder korrekt auszufüllen.
  • Custom: Hier können Sie jegliche Informationen hinzufügen. Setzen Sie sich mit Racemap in Verbindung, wie diese Daten in Racemap eingesetzt werden können.