bundesAPI / bundesAPI/dip-bundestag-api
Not all "required" fields are reliably supplied
- Dominant language
- Python
- Stars
- 25
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
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.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with openapi.yaml and the generator or template that turns required fields into client validation. Reproduce the /aktivitaet/1605951 response, then verify that the generated client can retrieve entities missing the aktualisiert field without an exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- openapi, python, yaml
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100