我正在为 REST API 做一个适配器。我已经为 POST 和 PUT 方法的主体使用了模型模式。@RequestBody Model1 requestBody
在适配器上。
现在,我遇到body
了需要数组的字段。
Swagger UI正文输入
时间 1) 在 Swagger 加载时,模型启动:
{
"field1" : "",
"field2Optional" : "",
"fieldArray" : [
{ "field2a" : "input2a" }
]
}
时间 2) 用户编辑:
{
"field1" : "input1",
"field2Optional" : "",
"fieldArray" : [
{ "field2" : "input2a" },
{ "field2" : "input2b-userAddition " }
]
}
模型1.groovy
@XmlElement
String field1 = ''
@XmlElement
String fieldOptional = ''
@XmlElement
ArrayList<Model2> fieldArray = new ArrayList<>( Arrays.asList(new Model2()) ).get(0)
}
Model2.groovy
@XmlElement
String field2 = ''
我想Model1
捕获/保存用户添加到fieldArray
类似的元素,{ "field2" : "input2b-userAddition " }
. 使用当前代码,我只能获取数组的第一个元素get(0)
,我不想创建 Model2 的许多实例,除非用户这么说。
我想到的解决方案是@RequestBody Map requestBody
在 Model1.groovy 中使用来获取整个请求并将实际用户输入与模型进行比较。然后添加在模型中未找到但在实际用户输入中找到的字段。我想知道是否有更好的方法来做到这一点?