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. ÔśÇ


  • ChurchToolsMitarbeiter

    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!


Log in to reply