• Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Solved OpenApi mit boolschen Query-Paramtern

    ChurchTools Schnittstellen
    2
    3
    225
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • skipyS
      skipy
      last edited by

      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. ☀

      1 Reply Last reply Reply Quote 1
      • hbuergerH
        hbuerger ChurchToolsMitarbeiter
        last edited by

        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.

        ChurchTools Mitarbeiter – Trainer – Supporter – Academy

        1 Reply Last reply Reply Quote 0
        • skipyS
          skipy
          last edited by

          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!

          1 Reply Last reply Reply Quote 1
          • First post
            Last post