我使用swagger在Java和Type脚本中生成类。 我有问题定义map属性与对象列表作为值。我试着定义如下:
DataMap
type: object
additionalProperties:
#type: array -- This config does not work.
$ref: '#/definitions/Data'
在java中的代码后面生成的yml定义:
class DataMap extends HashMap<String, Data> {
}
如何配置yml以生成包含数据列表的密钥?类似于以下课程:
class DataMap extends HashMap<String, List<Data>> {
}
或
class DataInfo {
Map<String, List<Data>> dataMap;
}
swagger 2.0可以实现吗?我正在考虑定义另一个扩展ArrayList的DataList类,然后将此类用作Map的值。
--------------更新&amp; ANSWER -----------
谢谢@nickb
我使用swagger-codegen-maven-plugin 2.2.1版和yml定义生成地图如下:
DataInfo
type: object
properties:
dataMap:
type: object
additionalProperties:
type: array
items:
$ref: '#/definitions/Data'
答案 0 :(得分:2)
我使用Swagger codegen v2.1.6以及以下模型定义:
foo:
properties:
baz:
type: string
bar:
properties:
map:
type: object
additionalProperties:
type: array
items:
$ref: '#/definitions/foo'
这会生成一个Bar
Java类,其中包含以下字段:
Map<String, List<Foo>> map = new HashMap<String, List<Foo>>();
如果您看到不同的行为,您可能会偶然发现回归。尝试测试早期版本,或者专门查看2.1.6是否正确生成此模型。