bundesAPI / dip-bundestag-api

Bundestag: Dokumentations- und Informationssystem für Parlamentsmaterialien
https://dip.bundestag.api.bund.dev/
16 stars 2 forks source link

Not all "required" fields are reliably supplied #22

Open hoemich opened 4 months ago

hoemich commented 4 months ago

Manche Entitäten werden nicht mit allen Werten zurück geliefert, die im openapi.yaml als "required" gekennzeichnet sind.

Ein Beispiel ist das Feld: "aktualisiert" bei der Entität:

https://search.dip.bundestag.de/api/v1/aktivitaet/1605951?format=json&apikey=I9FKdCn.hbfefNWCY336dL6x62vfwNKpoN2RZ1gp21

{  
  "id": "1605951",
  "aktivitaetsart": "Antwort",
  "typ": "Aktivität",
  "vorgangsbezug_anzahl": 1,
  "dokumentart": "Drucksache",
  "wahlperiode": 20,
  "vorgangsbezug": [
    {
      "vorgangsposition": "Schriftliche Frage/Schriftliche Antwort",
      "vorgangstyp": "Schriftliche Frage",
      "titel": "Sicherstellung der Versorgung der deutschen Autoindustrie mit Lithium, Kobalt und Grafit",
      "id": "290219"
    }
  ],
  "fundstelle": {
    "pdf_url": "https://dserver.bundestag.de/btd/20/026/2002692.pdf",
    "id": "261900",
    "dokumentnummer": "20/2692",
    "datum": "2022-07-08",
    "verteildatum": "2022-07-15",
    "dokumentart": "Drucksache",
    "drucksachetyp": "Schriftliche Fragen",
    "herausgeber": "BT",
    "urheber": [],
    "frage_nummer": "9"
  },
  "titel": "Sven Giegold, Staatssekr., Bundesministerium für Wirtschaft und Klimaschutz",
  "datum": "2022-07-08"
}

Das führt entsprechend zu einer Exception, und diese Entität lässt sich nicht per Client abrufen - auch wenn für den spezifischen Nutzen das Feld "aktualisiert" ggF. keine Rolle spielt.

Dieses Problem lässt sich dadurch beheben, das die openapi.yaml vor der Generierung so vorverarbeitet wird, dass die (problematischen) required-Felder zunächst entfernt werden. Alternativ kann man das Template welches vom Generator genutzt wird so anpassen, dass der Generator required-Felder nicht gesondert behandelt.


Dass das Fehlen des aktualisiert-Feldes ggF weiterreichende Probleme, beispielsweise beim Filtern nach dem Aktualisierungszeitraum Serverseitig mitbringen kann, wird dadurch natürlich nicht gelöst. Dies würde mehr Sorgfalt auf der Publisherseite erfordern - im Idealfall würden diese gleich einen generierten Server nutzen, der auf der Serverseite bei fehlerhaften Datensätzen gleich eine Fehlermeldung generiert.