Gelöst OpenApi mit boolschen Query-Paramtern
-
Hallo Miteinander,
beim letzten Update meiner openapi.json viel mir auf, dass einige neue Schnittstellen dazugekommen sind. Cool! Macht weiter so
Ich bin jedoch gerade bei boolschen Query-Parametern herausgefordert. Z.B. bei der /persons/ Schnittstelle. Bei der Verwendung des Parameters "is_archived" mit dem Wert (bool) TRUE, macht Swagger kräftig Ärger.
Ich bekomme vom ChurchTools-Webserver die Fehlermeldung zurück:
{"message":"There are validation errors","messageKey":"validation.error","translatedMessage":"Die eingegebenen Daten waren nicht korrekt.","args":[],"errors":[{"fieldId":"is_archived","message":"Eingabe muss TRUE oder FALSE sein.","messageKey":"validation.boolean","args":{"name":"is_archived","value":"0"}}]}
Daraus schieße ich, dass Swagger den übermittelten boolschen Query-Parameter umandelt in 0 (für false) oder 1 (für true) und so übermittelt. Der ChurchTools-Webserver dies aber nicht als validen Wert akzeptiert.
Meiner Meinung nach müssten 0 und 1 ebenfalls vom ChurchTools-Server als valide Werte akzeptiert und verwertet werden. Jedenfalls geht Swagger davon aus.Danke für eine kurze Rückmeldung.
-
Jo hier ist ein Bug drin. Den fixe ich für v3.60.
Es sollten folgende Wert funktionieren:
// Truthy Werte (int) 1 (string) 1 (bool) true (string) "true" // Falsy Werte (int) 0 (string) 0 (bool) false (string) "false"
Probelm hier war, dass alle Werte, die als Query Parameter übergeben werden immer als String übermittelt werden. Und den Case
(string) 1
wurde nicht beachtet.Wenn du aber
true
übergibst, funktioniert es ja. Damit kannst du ja erstmal arbeiten. -
Danke für den Bugfix
Leider konnte ich kein "true" ohne Überschreiben der Openapi übermitteln. Denn alle Parameter werden vorher von Swagger geparsed ... aber jetzt müsste es klappen. Danke!