Отображение пользовательского ключа HashMap с помощью аннотаций Swagger - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь сгенерировать документацию Swagger из кода Java, и одним из моих свойств вложенной модели является HashMap.Сгенерированный пример для него выглядит следующим образом:

      "additionalProp1": {
        "customObject": {}
      },
      "additionalProp2": {
        "customObject": {}
      },
      "additionalProp3": {
        "customObject": {}
      }

Мне нужно, чтобы он выглядел следующим образом:

      "objectName": {
        "customObject": {}
      }

Другими словами, я должен сказать им, что должна содержать строка AdditionalProp.быть и желательно не повторять это три раза.Есть ли способ сделать это с помощью аннотаций Swagger?Я бы предпочел не жестко кодировать полный пример, поскольку CustomObject сам имеет ряд свойств и все еще находится в движении.Возможно ли что-то сделать в соответствии с

@ApiModelProperty(example = "objectName:{package.CustomObject}")

(кроме того, что действительно работает)?

Я пытался играть с @ApiModelProperty вэтот и другие способы, но пока безуспешно.

@ApiModelProperty
public HashMap<String, CustomObject> getObjectMap(){
    return objectMap;
}

Я использую баночки Swagger 1.5.18.До сих пор мне удавалось найти похожие проблемы, решаемые с помощью прямой манипуляции с yaml или json.

1 Ответ

0 голосов
/ 30 мая 2018

У меня есть хакерское решение, где я создал фиктивный класс следующим образом:

public class SwaggerObject {
    public CustomObject getObjectName() {
        return null;
    }
}

и в основном коде добавил:

@ApiModelProperty(dataType="package.SwaggerObject")
public HashMap<String, CustomObject> getObjectMap(){
    return objectMap;
}

, который генерирует

"objectName": {
  "customObject": {}
}

однако глупо нуждаться в новом классе для него.Он также добавляет фиктивный класс к Моделям внизу, что может сбивать с толку.

...