Я пытаюсь получить примерное значение ответа в документах по интерфейсу Swagger для правильного отображения карты.Вот как выглядит моя карта: Map<Long, List<UserRole>>
.У объекта UserRole просто есть два поля: roleId & roleName.
Согласно аннотациям Javadoc для Swagger, responseContainer поддерживает Valid values are "List", "Set" or "Map". Any other value will be ignored.
Однако это реализация внутри общей библиотеки SpringFox Swagger.:
if ("List".compareToIgnoreCase(responseContainer) == 0) {
return Optional.of(resolver.resolve(List.class, response));
} else if ("Set".compareToIgnoreCase(responseContainer) == 0) {
return Optional.of(resolver.resolve(Set.class, response));
} else {
return Optional.of(resolver.resolve(response));
}
Очевидно, что это не поддерживает карту.
Если я не укажу тип ответа: @ApiResponse(code = 200, message = "OK")
, то документы Swagger будут выглядеть так:
{
"additionalProp1": [
{
"roleId": 1234,
"roleName": "User"
}
],
"additionalProp2": [
{
"roleId": 1234,
"roleName": "User"
}
],
"additionalProp3": [
{
"roleId": 1234,
"roleName": "User"
}
]
}
Это почти правильно, за исключением того, что мне нужно заменить поле additionalPropX
длинным значением.Я попытался установить примеры несколькими различными способами: @ApiResponse(code = 200, message = "OK", examples = @Example(value = @ExampleProperty(value = "Puppy"))),
.Я не думаю, что это реализовано в SpringFox.Я попытался создать новый POJO, чтобы обернуть мой ответ, но это просто вызывает некоторые действительно странные примеры ответов.
Я использую последние зависимости Swagger через Gradle:
compile 'io.springfox:springfox-swagger-ui:2.9.2'
compile 'io.springfox:springfox-swagger2:2.9.2'
Возможно ли это?