Spieldaten der Europameisterschaft 2008 per XML-Webservice

by msiggi 26. February 2008 20:23

Unter der bekannten URL http://msiggi.de/Sportsdata/Webservices/Sportsdata.asmx sind derzeit u.a. die die Daten der Spiele der ersten und zweiten Bundesliga zum Abruf bereitgestllt. Selbstverständlich werden wir auch die EM 2008 einpflegen, bzw. ist dies für die Vorrundenspiele bereits geschehen. Leider gibt es eine Ungereimtheit in der Dokumentation zu dem Webservice. Zum Abruf der Spieldaten über die Service-Methode GetMatchdataByGroupLeagueSaison wird der Parmeter "groupOrderID", welcher lt. Dokumentation per "GetAvailGroups" abrufbar ist, benötigt. Diese Methode gibt es jedoch nicht, ich habe schlichtweg vergessen, sie zu implementieren. Daher an dieser Stelle die nötigen Infos zum Abruf der Daten für die EM 2008:

  • groupOrderID=1 für die Vorrundenspiele, groupOrderID=2 fürs Viertelfinale usw....
  • der leagueShortcut lautet "fem08"
  • die leagueSaison lautet "2008"

Ich werde diese "Unschärfe" in Kürze dahingegend bereinigen, dass der Service - einhergehend mit einem neuen Webauftritt - neu gestaltet etwas "offener" wird. Es soll jeder nach einer formalen Registration seine eigene Liga eröffnen und pflegen können: ob Fussball, Handball oder eine Sportart seiner Wahl, sie muss nur in das Liga-Schema passen.

Bis dahin bitte ich noch um einige wenige Wochen Geduld....

Tags: , ,

Comments (12) -

Tilo
Tilo Germany
2/27/2008 1:05:44 PM #

Hi Marcel,
schön zu hören, dass ihr euch auch der EM08 widmet. Nutze den Webservice seit Beginn der jetzigen Bundesliga-Saison und bin super zufrieden!
Habe auch gleich mal probiert unter http://msiggi.de/Sportsdata/ mir die Vorrundenspiele der EM08 ausgeben zu lassen, aber da kommt leider noch nichts.. Ich frage mich nämlich, wie ich denn die einzelnen 4 Gruppen unterscheiden kann, wenn sie doch alle unter der groupOrderID 1 sind?
Die Zukunftsideen klingen spannend und ich freu mich drauf bald wieder was neues von deinem Webservice zu hören Smile

Grüße aus Berlin

Reply

Marcel
Marcel
2/27/2008 3:16:31 PM #

Hallo Tilo,

ich kann mir nicht erklären,warum bei Dir nichts zurückkommt. Wenn ich den Service unter http://msiggi.de/sportsdata --> "So funktioniert´s" mit den Parametern 1 / fem08 / 2008 teste, bekomme ich die entsprechenden Spieldaten angezeigt. Ebenso bei http://www.soapclient.com/SoapTest.html ! hm...

Reply

Tilo
Tilo Germany
2/27/2008 3:53:53 PM #

Ahh, sorry, mein Fehler, hatte es mit "fem2008" probiert.. Schade, dass es so nicht möglich ist die 4 Gruppen der Vorrunde zu unterscheiden..

Reply

Marcel
Marcel
2/27/2008 3:57:42 PM #

noch vergessen:

die groupOrderID hat nichts mit der Gruppe der Mannschaften (A,B,...) zu tun. Der Parameter stellt die zeitliche Gruppierung dar, bei der Fussball-Bundesliga z.B.in Spieltag 1-34, bei einer WM das Achtelfinale, Viertelfinale,...,Finale!

Der Begriff ist vielleicht nicht gerade schön gewählt, aber für einen allgemeinen, mehrere Ligen und Sportarten umfassenden Parameter ist mir nicht besseres eingefallen.

Die 4 Gruppen der EM-Teams werden bei meinem Webservice nicht berücksichtigt.

Reply

Tilo
Tilo Germany
2/27/2008 5:14:47 PM #

Nagut, dann mach ich das manuell in meinem PHP Backend...
Vielleicht könnte man für die Zukunft ein optionales Feld hinzufügen wo solche Sachen wie Gruppe (bezogen auf Tuniere wie EM, WM, etc.) definiert werden können Smile

Reply

Ape
Ape Germany
3/5/2008 8:41:40 PM #

Hi Marcel,

find deinen WebService klasse! Weiter so! Werde demnächst ne Windows Mobile Applikation mit Hilfe deines WebServices entwickeln.

Gruß
Ape

Reply

Torsten
Torsten Germany
5/4/2008 8:08:01 PM #

Hallo,

ich bin gerade dabei eine private Tipprunde für die EM zu implementieren und bin erstmal begeistert von der Arbeit hier. Ein Probolem habe ich allerdings:

Die Spiele für das Viertelfinale und später existieren ja noch nicht und liefern daher auch eine Exception, wenn man sie anfragt. Das wirft natürlich Probleme auf wenn man trotzdem schon tippen möchte, auch wenn nich nicht alle bzw keine Paarungen feststehen.

Ist es denn möglich die Daten so weit zu kompletieren, dass solange die Mannschaften nicht feststehen sowas wie "Zweiter Gruppe A" oder "Sieger HF 2" abgerufen werden kann, damit man durchgehend konsistente Anfragen hat?

Viele Grüße

Reply

msiggi
msiggi
5/4/2008 8:44:51 PM #

Hallo Torsten,

ich kann Dein Problem nachvollziehen, doch leider nicht lösen. Die Idee mit den "dummy-Mannschaften" ist gut, doch leider schwer in das so bestehende System zu integrieren. Die Webservices sollten jedoch keine Exception liefern, sonderen einfach leere Felder, sofern die Spiele noch nicht existieren. Vielleicht entsteht die Exception ja in Deiner Applikation und lässt sich "anwenderfreundlich" auswerten?

Marcel

Reply

Torsten
Torsten Germany
5/5/2008 9:11:25 PM #

Hallo Marcel!

Danke erstmal für die schnelle Antwort. Die Exception bekomme ich bereits beim abrufen der Daten. Hier mein (zur besseren Übersicht zusammengefasster) verwendeter Code:

<?php
  $client = new SoapClient("http://msiggi.....asmx?WSDL";);
  
  $params   = array(
      'groupOrderID'     => 2,
      'leagueShortcut'  => 'fem08',
      'leagueSaison'    => '2008',
  );
  // Alle Informationen des Aktuellen Spieltags
  try {
    $matchDay = $client->GetMatchdataByGroupLeagueSaison($params);
  } catch (SoapFault $fault) {
    echo "FEHLER";
    exit;
  }
?>

Eine Grouporder ungleich 1 liefert nen Fehler. Das fange ich momentan ab und generiere etwas statisches. Wenn das mit den Dummy-Paarungen nicht geht, was passiert denn, wenn erst ein Spiel im Viertelfinale feststeht? Oder werden erst alle Paarungen eingetragen, wenn die gesamte Vorrunde abgeschlossen ist?

Ich muss leider so detailliert fragen, weil ich keine bösen Überraschungen erleben möchte, wenn es dann soweit ist.

Reply

paulbrause
paulbrause Germany
6/7/2008 11:56:35 PM #

Hallo!

Da mich Torsten's Fragestellung auch interessiert, würd ich da gerne noch mal nachhaken... ;)

Wann werden die Paarungen des Viertelfinals usw. eingetragen, sobald eine Paarung feststeht oder erst nach Beendigung der Gruppenphase?!?

Und das mit der Exception kann ich bestätigen, ich bekomme, sobald die groupOrderID > 1 ist, folgende Fehlermeldung in meinem php-Script:

Fatal error: Uncaught SoapFault exception: [soap:Server] Die Anforderung konnte vom Server nicht verarbeitet werden. ---> Der Index war außerhalb des Arraybereichs

Auch wenn ich unter www.openligadb.de/.../WebserviceLiveTest.aspx mit folgenen Daten
groupOrderID -> 2
leagueShortcut -> fem08
leagueSaison -> 2008
live teste, bekomme ich die Fehlermeldung: "Leider trat ein Fehler in der Anwendung auf. Bitte wiederholen Sie den Vorgang!".

Danke schon mal!
Und mach weiter so, das ist super, was Du uns hier bietest.. Laughing

Reply

Torsten
Torsten Germany
6/8/2008 1:50:39 PM #

Hallo paulbrause

Weil ich die Paarungen sofort benötige, habe ich eine eigene EM-Liga erstellt. Die kannst du dir ja mal bei openligadb.de angucken, sie heißt em_brinkwerth.

Zu deinem exception-Problem, das habe ich so gelöst:
  
$length = count($matchDay->GetMatchdataByGroupLeagueSaisonResult->Matchdata);
  $games = array();
  if ($length > 1){
    for ($i = 0; $i < $length; $i++){
      $games[] = $matchDay->GetMatchdataByGroupLeagueSaisonResult->Matchdata[$i];
    }
  } else {
    $games[] = $matchDay->GetMatchdataByGroupLeagueSaisonResult->Matchdata;
  }

Wenn du dazu Fragen haben solltest, dann helf ich dir gern weiter.

Gruß

Torsten

Reply

paulbrause
paulbrause Germany
6/8/2008 5:27:40 PM #

Hallo!

Danke erstmal für die schnelle Antowrt(en auch per Mail)!

Die Liga em_brinkwerth ist das, was ich eigentlich brauche, also werd ich wohl diese verwenden... lediglich das Konvertieren der MatchID muss ich nun noch hinbasteln, denn die Tipps werden bislang über diese abgegeben... da ich nun ja eine andere habe, werd ich die ID ja auch bei den Tipps ändern müssen...

Aber das werd ich wohl irgendwie hinkriegen... Laughing

Danke!!!

Reply

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Der Blog zur Seite...

www.OpenLigaDB.de

Month List