Gibt es eine Möglichkeit, eine JSON-Schemaeigenschaft entweder als Zahl oder null
? zu aktivieren?
Ich baue eine API, die ein heading
-Attribut enthält. Kann eine Zahl zwischen 0 (einschließlich) und 360 (exklusiv) oder null sein, daher sind die folgenden Eingaben OK:
Und die folgenden Eingaben sind fehlerhaft:
%Vor%Nachtrag:
anyOf
ist eindeutig die richtige Antwort. Hinzufügen des vollständigen Schemas für Klarheit.
In Entwurf-04 würden Sie die anyOf-Direktive verwenden:
%Vor%Sie könnten auch "type" verwenden: ["number", "null"] wie Adam es vorschlägt, aber ich denke, dass anyOf sauberer ist (solange Sie eine 04-Implementierung verwenden) und bindet die minimale und maximale Deklaration auf die Nummer explizit.
Haftungsausschluss: Ich weiß nichts über die Python-Implementierung, meine Antwort ist über JSON-Schema.
Der Trick besteht darin, ein Typ-Array zu verwenden. Statt:
%Vor%Verwenden:
%Vor%Der folgende Code erzwingt eine Number-or-Null-Richtlinie sowie numerische Einschränkungen, wenn der Wert eine Zahl ist:
%Vor%Was gibt:
%Vor%Tags und Links python api json validation jsonschema