Deutscher-Leichtathletikverband / Interfaces

9 stars 0 forks source link

Ungültige Altersklassendefinition in Ergebnissen | DLV DED System #8

Open mschunk opened 5 months ago

mschunk commented 5 months ago

Das DLV DED System stellt Ergebnisse in einem JSON Format zur Verfügung. Die Dokumentation ist hier veröffentlicht: https://ergebnisse.leichtathletik.de/swagger/v1/swagger.json

Erwartung:

  1. Daten, die vom DLV DED System bereitgestellt werden, entsprechen der veröffentlichten Schnittstellendokumentation des DLV DED Systems
  2. Die fehlerhaft bereitgestellten Daten werden zeitnah fehlerfrei bereitgestellt

Beobachtung: Die bereitgestellten Daten halten sich nicht an die Schnittstellendokumentation, hier liegt einiges, sehr grundsätzliches im Argen:

  1. Pflichtfelder fehlen
  2. falsche Datentypen verwendet
  3. Standardcodes werden nicht verwendet

Am Beispiel von 23L20000000000000 | Ergebnisdatei a7947472-19eb-4327-a298-4e0168becdf8

{
  "Name": "30. Stuttgart-Lauf 2023",
  "Start": "2023-05-21",
  "End": "2023-05-21",
  "Town": "Stuttgart",
  "Nation": "GER",
  "Environment": "Outdoor",
  "_GER_Id": "23L20000000000000",
  "Clubs": ..,
  "Events": [
    {
      "Environment": "Outdoor",
      "Shortcode": "SHAL",
      "Longname": "Halbmarathon",
      "Agegroups": [
        {
          "Id": 55,
          "Shortcode": 55
        },
        {
          "Id": "WH",
          "Shortcode": "WH"
        }
      ],
...

Auszug aus der Schnittstellendokumentation (https://ergebnisse.leichtathletik.de/swagger/v1/swagger.json):

"AthonAgegroup": {
       "type": "object",
       "additionalProperties": false,
       "required": [
         "Shortcode",
         "FromAge",
         "ToAge"
       ],
       "properties": {
         "Id": {
           "type": "string",
           "description": "ID inside Document or Database",
           "nullable": true
         },
         "Gender": {
           "description": "Gender of this agegroup. If not determined, use mixed",
           "$ref": "#/components/schemas/AthonGender"
         },
         "Shortcode": {
           "type": "string",
           "description": "National shortcode",
           "minLength": 1
         },
         "Longname": {
           "type": "string",
           "nullable": true
         },
         "FromAge": {
           "type": "integer",
           "description": "Minimum age this agegroup will allow competitors",
           "format": "int32"
         },
         "ToAge": {
           "type": "integer",
           "description": "Maximum age this agegroup will allow competitors",
           "format": "int32"
         },

Pflichtfelder fehlen

Die Attribute FromAge und ToAge sind als Pflichtfelder definiert. Die Pflichtfelder sind nicht vorhanden. Laut der Schnittstellendokumentation sind die bereitgestellten Daten ungültig. Beispiel:

      "Agegroups": [
        {
          "Id": 55,
          "Shortcode": 55
        },
        {
          "Id": "WH",
          "Shortcode": "WH"
        }

falsche Datentypen verwendet

Die Attribute Id und Shortcode sind als string definiert. In den bereitgestellten Daten werden diese tlw. als string und tlw. als integer bereitgestellt. D.h. in einer Liste, in einer Veranstaltung wird für das gleiche Attribut unterschiedliche Datentypen verwendet. Laut der Schnittstellendokumentation sind die bereitgestellten Daten ungültig. Beispiel:

      "Agegroups": [
        {
          "Id": 55,
          "Shortcode": 55
        },
        {
          "Id": "WH",
          "Shortcode": "WH"
        }

Standardcodes werden nicht verwendet

Das Attribut Shortcode von AthonAgegroup (aka Altersklassencode) verwendet nicht die seitens des DLV dokumentierten und veröffentlichten Altersklassencodes. 55 und WH sind keine gültigen Altersklassencodes laut DLV Liste: https://dateien.leichtathletik.de/meta/agegroups. Laut der Schnittstellendokumentation sind die bereitgestellten Daten ungültig.

mschunk commented 5 months ago

Das ist kein Einzelfall, weitere betroffene Veranstaltungen 24V03900000263500, 24D09000000000002 etc.

Am Beispiel der letztgenannten DM Marathon (24D09000000000002):

"Agegroups": [
        {
          "Id": "MHK",
          "Shortcode": "MHK"
        },
        {
          "Id": "WHK",
          "Shortcode": "WHK"
        },
        {
          "Id": 35,
          "Shortcode": 35
        },
AM-DLV commented 3 weeks ago

Die Umsetzung von MikaTiming steht noch aus.

UdoLaubDLV commented 3 weeks ago

Mail von Herrn Mika am 25.09.2024: Hallo Herr Laub, bei ca. 2/3 der Veranstaltung ist die Anpassung erfolgt und die Daten wurden erneut übertragen. An den restlichen Veranstaltungen wird ebenfalls gearbeitet.