• Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen
    • Suche
    • Registrieren
    • Anmelden

    Gelöst OpenApi mit boolschen Query-Paramtern

    ChurchTools Schnittstellen
    2
    3
    225
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • skipyS
      skipy
      zuletzt editiert von

      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 Antwort Letzte Antwort Antworten Zitieren 1
      • hbuergerH
        hbuerger ChurchToolsMitarbeiter
        zuletzt editiert von

        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 Antwort Letzte Antwort Antworten Zitieren 0
        • skipyS
          skipy
          zuletzt editiert von

          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 Antwort Letzte Antwort Antworten Zitieren 1
          • Erster Beitrag
            Letzter Beitrag