• Hallo Gast, wir suchen den Renner der Woche 🚴 - vielleicht hast du ein passendes Rennrad in deiner Garage? Alle Infos

Ankündigung: Winterpokal API

Noch mal zum Thema doppelte bzw. fehlende Einträge in den Ranking-Tabellen. In der IBL nutzen wir die API seit 2011 intensiv für den IBL-WP. Schön, dass es die Schnittstelle gibt. :daumen:

Wir lesen die Rankings zwischen 6 und 24 Uhr für alle Tabellen stündlich aus. Da pro Call nur 100 Datensätze angefordert werden können, läuft jeweils eine Schleife bis die Rankings komplett vorliegen.

Ich habe unsere Routinen mit einem zusätzlichen Logging versehen. Aktuell sieht das für einen Durchgang so aus wie unten gelistet. Es sind doppelte (oder mehrfache) und fehlende Einträge vermerkt.

Mode: P = Points, T = Time, Category für die Sportarten (0 = alle Sportarten), D/M: D = doppelte, M = missing entries. Bei mehrfachen Einträgen sind die Platzierungen und zusätzlich Punkte und Minuten vermerkt. Letztere sind immer identisch, es gibt also keine Überschneidung durch Eingabe/Ändern/Löschen von Einheiten. Der Zeitstempel stammt aus dem Header des Server-Response.

Das Logging bezieht sich nur auf die aktuell im IBL-WP gelisteten User + deren Teamkollegen. Derzeit sind das 82 Aktive und dafür ist die Häufigkeit der Fehleinträge schon ganz ordentlich wie ich finde. Krass ist es, wenn ein User auf 3 Seiten zeitgleich auftaucht. :(

Wäre nett, wenn ihr das etwas optimieren könntet. Danke vorab. :)

Btw, Cut & Paste mit Beibehaltung von Spaces zur ordentlichen Formatierung funktioniert hier bei der Beitragserfassung nur im ASCII-/BBCode-Editor einwandfrei. Der RT-Editor verschluckt gerne hier und da ein paar Leerzeichen.

Code:
ResponseTime Server    Mode Cat   Uid User                         D/M Ranks (Pts, Minutes)
-------------------------------------------------------------------------------------------
[2013-11-15 11:50:05]  P    0   11312 ironman-finisher             M   -
[2013-11-15 11:50:05]  P    0   25564 Majok                        M   -
[2013-11-15 11:50:07]  P    0    6235 Storck                       D   795 (41, 667), 806 (41, 667)
[2013-11-15 11:50:05]  P    0   10457 Blitzdings                   M   -
[2013-11-15 11:50:05]  P    0   34380 giffi                        M   -
[2013-11-15 11:50:05]  P    0   10918 Bergfloh05                   M   -
[2013-11-15 11:50:09]  P    0   65995 Beata                        D   1693 (15, 238), 1714 (15, 238)
[2013-11-15 11:50:09]  P    0    5478 Touri                        D   1597 (18, 330), 1610 (18, 330)
[2013-11-15 11:50:05]  P    0    1832 biciwolf                     M   -
[2013-11-15 11:50:10]  P    1   17708 iMagicRocky                  M   -
[2013-11-15 11:50:10]  P    1   25564 Majok                        M   -
[2013-11-15 11:50:12]  P    1    6235 Storck                       D   690 (38, 588), 701 (38, 588)
[2013-11-15 11:50:10]  P    1   10457 Blitzdings                   M   -
[2013-11-15 11:50:10]  P    1   10918 Bergfloh05                   M   -
[2013-11-15 11:50:10]  P    1   41913 Schalom                      M   -
[2013-11-15 11:50:14]  P    1   53560 Chabo-Mat                    D   1883 (2, 40), 1902 (2, 40)
[2013-11-15 11:50:10]  P    1    5443 Timo Beil                    M   -
[2013-11-15 11:50:15]  P    2    5226 Norbert 36                   D   786 (1, 20), 802 (1, 20)
[2013-11-15 11:50:14]  P    2   28841 Ausdauerjunkie               M   -
[2013-11-15 11:50:15]  P    2    1831 millenovanta                 D   687 (2, 40), 731 (2, 40)
[2013-11-15 11:50:15]  P    2   26034 Sonja67                      D   792 (1, 35), 808 (1, 35)
[2013-11-15 11:50:16]  P    4   10122 radelchris                   M   -
[2013-11-15 11:50:16]  P    4   11312 ironman-finisher             M   -
[2013-11-15 11:50:16]  P    4    2122 howisch                      M   -
[2013-11-15 11:50:17]  P    4    1706 Listersee                    D   752 (4, 90), 872 (4, 90)
[2013-11-15 11:50:18]  P    4    5880 schorschi                    D   922 (2, 30), 1026 (2, 30)
[2013-11-15 11:50:17]  P    4   26057 TomCollins                   D   656 (4, 180), 726 (4, 180), 820 (4, 180)
[2013-11-15 11:50:16]  P    4   35591 dkue                         M   -
[2013-11-15 11:50:16]  P    4   65994 Fliegender Hollander         M   -
[2013-11-15 11:50:16]  P    4   65995 Beata                        M   -
[2013-11-15 11:50:16]  P    4   38324 Laplace                      M   -
[2013-11-15 11:50:16]  P    4   28841 Ausdauerjunkie               M   -
[2013-11-15 11:50:16]  P    4     884 cube04                       M   -
[2013-11-15 11:50:16]  P    4   66104 Smurf                        M   -
[2013-11-15 11:50:16]  P    4   66127 Laufsöckchen                 M   -
[2013-11-15 11:50:17]  P    4   66171 Myrrhe03                     D   777 (4, 140), 856 (4, 140)
[2013-11-15 11:50:16]  P    4   60978 Binda                        M   -
[2013-11-15 11:50:18]  P    4   66195 Verlaufmichnicht             D   952 (2, 60), 1052 (2, 60)
[2013-11-15 11:50:17]  P    4   66184 Heiko73                      D   373 (8, 340), 424 (8, 340)
[2013-11-15 11:50:18]  T    0   17708 iMagicRocky                  M   -
[2013-11-15 11:50:18]  T    0    5478 Touri                        M   -
[2013-11-15 11:50:18]  T    0   66104 Smurf                        M   -
[2013-11-15 11:50:24]  T    4   11312 ironman-finisher             D   982 (4, 60), 1001 (4, 60)
[2013-11-15 11:50:22]  T    4   35997 Gibbuts                      M   -
[2013-11-15 11:50:22]  T    4    6446 Casablanca                   M   -
[2013-11-15 11:50:23]  T    4   26057 TomCollins                   D   484 (4, 180), 523 (4, 180)
[2013-11-15 11:50:22]  T    4   65994 Fliegender Hollander         M   -
[2013-11-15 11:50:22]  T    4   66252 Lala2003                     M   -
 
Ich denke, die einfachste Lösung wäre es, einfach den Download des kompletten Rankings in einem Request zu ermöglichen. Dann wäre es in sich konsistent. Ich werde das kurzfristig einbauen. Vermutlich schaffe ich es nicht mehr heute, aber in den nächsten Tagen sollte es funktionieren. Ich melde mich dann noch mal!

Viele Grüße

rik
 
Hallo,

du kannst jetzt bei den Rankings maximal 100.000 Positionen mit einem Request abfragen. Damit dürften keine Dopplungen mehr auftreten. Der Defaultwert ist wie bisher 100 Positionen.

Viele Grüße

rik
 
Derzeit gibt es offensichtlich ein kleines Problem mit fehlerhaften unitDate-Einträgen.

WP_Screenshot_InvalidDate01.jpg


Betrifft wenigstens die User 5515 und 25948. Einträge wurden jeweils am 01.12. zwischen 20 und 22 Uhr vorgenommen und beziehen sich wohl auf Einheiten vom 30.11.13
 
hm...so wie es aussieht wird gerade an der API gebastelt...zumindest kommen jetzt bei einem entries/my.json auch die Einträge aus den vergangenen Jahren :daumen:

Wird es möglich sein, das per Parameter auf ein Jahr bzw Saison einzuschränken?
 
^^hört sich gut an!

bei der Rückgabe der API-Tokens ist mir auch noch was aufgefallen, da kommt jetzt folgende Rückgabe:

{
"tokens": [
{
"token": "XXXX...XXXXXXX",
"description": ""
}
]
}

d.h. es kommen, anders als in der Doku, kein status, messages und data-Element. Könnte bei bestehenden Clients scheppern.
 
^^hört sich gut an!

bei der Rückgabe der API-Tokens ist mir auch noch was aufgefallen, da kommt jetzt folgende Rückgabe:

{
"tokens": [
{
"token": "XXXX...XXXXXXX",
"description": ""
}
]
}

d.h. es kommen, anders als in der Doku, kein status, messages und data-Element. Könnte bei bestehenden Clients scheppern.

Danke für den Hinweis, werde einen Test schreiben und den Fehler beheben!
 
Hi @Eigeplackter

der Fehler ist jetzt behoben - das sollte jetzt so funktionieren wie in der Dokumentation beschrieben. Danke noch mal für den Hinweis!

Viele Grüße

rik
 
Kann mir mal jemand kurz verklickern, wie ich mich als Einzelstarter beim WP anmelde ?
Danke :)


Sobald der WP gestartet ist gehst Du auf "Winterpokal", dann "Einheiten eintragen" und trägst Deine Sporteinheit ein. Das ist dann selbsterklärend. Eine gesonderte "Anmeldung" beim WP ist nicht erforderlich; ... sind alle angemeldet ;)
 
Bei den Einheiten lässt sich ab dem diesjährigen WP ja auch die zurückgelegte Distanz eintragen. Bei der Abfrage der Einheiten über die API via /api/v1/entries/user/<USERID>.json wird die Distanz allerdings nicht ausgewiesen. Wäre fein, wenn ihr das noch integrieren könnt.

Danke vorab.
 
Zurück
Oben Unten