Генерация свойств из HashMapиспользование библиотеки Swagger-Core в Java - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь сгенерировать некоторые определения для спецификации 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);

, очевидно, не работает так, как мне бы хотелось, поскольку я пытаюсь передать карту как свойство. Существуют ли простые решения для того, что я пытаюсь сделать?

...