nay*_*kam 6 java yaml swagger typescript swagger-2.0
我正在使用 swagger 在 Java 和 Type 脚本中生成类。我在使用对象列表作为值定义地图属性时遇到问题。我试图定义如下:
DataMap
type: object
additionalProperties:
#type: array -- This config does not work.
$ref: '#/definitions/Data'
Run Code Online (Sandbox Code Playgroud)
上面的 yml 定义在 java 中生成了以下代码:
class DataMap extends HashMap<String, Data> {
}
Run Code Online (Sandbox Code Playgroud)
如何配置 yml 以生成带有数据列表的密钥?类似于以下课程:
class DataMap extends HashMap<String, List<Data>> {
}
Run Code Online (Sandbox Code Playgroud)
或者
class DataInfo {
Map<String, List<Data>> dataMap;
}
Run Code Online (Sandbox Code Playgroud)
swagger 2.0 可以做到这一点吗?我正在考虑定义另一个扩展 ArrayList 的 DataList 类,然后使用这个类作为 Map 的值。
--------------更新和回答-----------
谢谢@nickb
我使用 swagger-codegen-maven-plugin version 2.2.1 和 yml 定义来生成地图如下:
DataInfo
type: object
properties:
dataMap:
type: object
additionalProperties:
type: array
items:
$ref: '#/definitions/Data'
Run Code Online (Sandbox Code Playgroud)
我正在使用具有以下模型定义的 Swagger codegen v2.1.6:
foo:
properties:
baz:
type: string
bar:
properties:
map:
type: object
additionalProperties:
type: array
items:
$ref: '#/definitions/foo'
Run Code Online (Sandbox Code Playgroud)
这将生成一个Bar具有以下字段的Java 类:
Map<String, List<Foo>> map = new HashMap<String, List<Foo>>();
Run Code Online (Sandbox Code Playgroud)
如果你看到不同的行为,你可能已经陷入了回归。尝试测试早期版本,或专门查看 2.1.6 是否正确生成此模型。
| 归档时间: |
|
| 查看次数: |
3994 次 |
| 最近记录: |