Ich zeichne eine API-Dokumentation mit swagger.io und versucht, es zu unserem Anwendungsfall passen. Das System wird Daten von allen Quellen empfangen und verarbeiten, und sie würden jeweils unterschiedliche Gruppen von Feldern haben.Freeform-Unterobjekt in JSON-Schema
Während das Produkt der Verarbeitung dasselbe Schema hat, möchten wir die Eingabe auch als Referenz in das Schema aufnehmen. Zum Beispiel gegeben
{
"foo": "bar"
"bar": "baz"
}
Das Produkt der Verarbeitung
{
"original": {
"foo": "bar",
"bar": "baz"
}
"processed": {
"stdFieldA": "bar",
"stdFieldB": "baz"
}
}
aus verschiedenen Quellen für jeden Eingang Unter der Annahme ist, haben wir am Ende nach oben und stdFieldA
stdFieldB
aufweisen. So ist die Antwort Schema-Objekt haben wir
type: object
properties:
processed:
type: object
properties:
stdFieldA:
type: string
stdFieldB:
type: string
jetzt, dass wir den processed
subobject definiert, können wir ein Freiform-Objekt für den ursprünglichen Eingang zu definieren, so dass dieses Objekt aus einer anderen Quelle kommt gültig ist
{
"alpha": "lorem",
"beta": "ipsum"
}
Wenn ich keine Antwort darauf bekomme, würde ich die ursprüngliche Eingabe als String speichern (wandle die ursprüngliche Eingabe in JSON-String um).