Ich mache einen Adapter für eine REST-API. Ich habe das Modellschema für den Körper der POST- und PUT-Methode verwendet. @RequestBody Model1 requestBody
am Adapter.Machen Sie Modell-Schema-Capture-Element-Zusatz auf einer Array-Feld-Anfrage
Jetzt habe ich body
mit Feldern, die eine -Array erfordert.
Swagger UI Körper Eingang
Zeit 1) Auf Swagger Last, Model initiiert:
{
"field1" : "",
"field2Optional" : "",
"fieldArray" : [
{ "field2a" : "input2a" }
]
}
Time 2) Benutzer bearbeitet:
{
"field1" : "input1",
"field2Optional" : "",
"fieldArray" : [
{ "field2" : "input2a" },
{ "field2" : "input2b-userAddition " }
]
}
Model1.groovy
@XmlElement
String field1 = ''
@XmlElement
String fieldOptional = ''
@XmlElement
ArrayList<Model2> fieldArray = new ArrayList<>(Arrays.asList(new Model2())).get(0)
}
Model2.groovy
@XmlElement
String field2 = ''
Ich möchte Model1
erfassen/die Elemente der Benutzer auf die fieldArray
wie { "field2" : "input2b-userAddition " }
hinzugefügt speichern. Mit dem aktuellen Code kann ich nur das erste Element des Arrays get(0)
abrufen, ich möchte nicht viele Instanzen von Model2 erstellen, es sei denn der Benutzer sagte dies.
Die Lösung, die ich im Sinn habe, ist @RequestBody Map requestBody
in Model1.groovy zu verwenden, um die gesamte Körperanforderung zu erhalten und die tatsächliche Benutzereingabe mit dem Modell zu vergleichen. Fügen Sie dann die Felder hinzu, die nicht im Modell gefunden wurden, aber in der tatsächlichen Benutzereingabe gefunden wurden. Ich frage mich, ob es einen besseren Weg gibt, dies zu tun?