我正在使用swagger在go客户端中为现有REST API生成DTO。 请求正文DTO具有通用的哈希映射,例如:
class MyConfig {
Map<String, Object> config;
}
可以说配置是2个可能的键,每个键的值都是不同的对象。
key1 = "_key1", and value1 = "type A"
key2 = "_key2", and value2 = "type B"
我使用了swagger检查器扩展,并为我的API生成了swagger规范(OAS 2.0)。 生成的yaml文件如下:
MyConfig:
properties:
_key1:
$ref: '#/definitions/_A'
_key2:
$ref: '#/definitions/_B'
基本上,这对应于MyConfig类型的类,具有2个字段,分别为“ key1”和“ key2”。 我认为,如果我服务器端的DTO将来进行任何更改,例如在地图中支持另一个键和值,我认为这不会起作用。
这并没有真正映射到我的实际输入,即哈希图。
在我看来,我应该按如下所示进行建模:
MyConfig:
properties:
config:
type: object
additionalProperties:
type: string
$ref: {} -->(assuming {} represents a generic object)
是否有支持在swagger规范中提及泛型对象? 不确定哪种方法更好/更灵活。
谢谢!