Solved 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) 1wurde 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!