我正在为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 " }
]
}
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 = ''
我希望Model1
捕获/保存用户添加到fieldArray
的元素,{ "field2" : "input2b-userAddition " }
。使用当前代码,我只能获取数组get(0)
的第一个元素,我不想创建Model2的许多实例,除非用户这么说。
我想到的解决方案是在Model1.groovy中使用@RequestBody Map requestBody
来获取整个身体请求并比较实际用户输入与模型。然后添加模型中找不到但在实际用户输入中找到的字段。我想知道是否有更好的方法来做到这一点?
答案 0 :(得分:0)
在@RequestBody Map requestBody
内使用Model1.groovy
获取整个身体请求并比较实际用户输入与模型对我来说似乎是一个非常好的和干净的想法。我相信不可能有更好的方式。