Я пытаюсь сгенерировать некоторые определения для спецификации OpenAPI, используя библиотеку swagger-core (2.0) в Java. Мне даны определения в форме Java-объекта, более конкретно
Map<String, Map<String, Object>>
Однако внутренним значением всегда будет строка. Пример объекта Mapping будет:
Outer Key: paralegalLead
With the inner mapping being:
{
description=Lead Paralegal,
readOnly=false,
type=string,
title=Paralegal Lead,
default = ""
}
Полученный JSON должен выглядеть следующим образом:
"paralegalLead": {
"default": "",
"description": "Lead Paralegal",
"title": "Paralegal Lead",
"type": "string",
"readOnly": "false"
}
У меня проблемы с попыткой вставить этот HashMap в объект Property. Я пытался использовать класс PropertyBuilder, но я не вижу никаких методов, которые просто дают мне возможность добавить пару ключ-значение.
public Swagger generateDefinitions(Map<String, Object> propertyMap, Swagger apiSpec)
{
ModelImpl model = new ModelImpl();
propertyMap.keySet().stream().forEach(key -> {
System.out.println("Key: " + key);
System.out.println("Value: " + propertyMap.get(key));
model.addProperty(key, propertyMap.get(key);
});
apiSpec.addDefinition("testKey", model);
return apiSpec;
}
Линия
model.addProperty(key, propertyMap.get(key);
, очевидно, не работает так, как мне бы хотелось, поскольку я пытаюсь передать карту как свойство. Существуют ли простые решения для того, что я пытаюсь сделать?