Bir REST API'si için bir bağdaştırıcı yapıyorum. POST ve PUT yönteminin gövdesi için model şema kullandım. Adaptörde @RequestBody Model1 requestBody
.Bir dizi alanı isteğinde model-şema yakalama öğesi ekleme yapın
Şimdi, dizisini gerektiren alanları içeren body
ile karşılaştım. Havalı Yüklemede
Havalı UI gövde giriş
Zaman 1), model tarafından başlatılan:
{
"field1" : "",
"field2Optional" : "",
"fieldArray" : [
{ "field2a" : "input2a" }
]
}
Saat 2) Kullanıcı düzenlendi:
{
"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 = ''
Ben Model1
/yakalama kullanıcı { "field2" : "input2b-userAddition " }
gibi fieldArray
eklenen unsurlar kaydetmek istiyorum. Geçerli kod ile, yalnızca get(0)
dizisinin ilk elemanını alabilirim, kullanıcı bunu söylemediği sürece Model2'nin bir çok örneğini oluşturmak istemiyorum.
Aklımdaki çözüm, tüm vücut isteğini almak ve modele göre gerçek kullanıcı girişini karşılaştırmak için Model1.groovy içinde @RequestBody Map requestBody
'u kullanmaktır. Daha sonra modelde bulunmayan ancak gerçek kullanıcı girdisinde bulunan alanları ekleyin. Bunu yapmak için daha iyi bir yol olup olmadığını merak ediyorum?