SpringFox - Есть ли способ заменить спецификацию / определение модели, где ResponseEntity<?> Используется для фактического класса?
Мы используем следующие версии SpringFox:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-web</artifactId>
<version>2.6.1</version>
</dependency>
И создайте экземпляр SpringFox/Swagger 2, используя приведенный ниже компонент:
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.alternateTypeRules(
AlternateTypeRules.newRule(typeResolver.resolve(ResponseEntity.class, WildcardType.class),
typeResolver.resolve(WildcardType.class)))
.apiInfo(apiInfo());
}
Мы используем универсальный ResponseEntity для типа возвращаемого значения:
@RequestMapping(value = “/someMethod”, method = RequestMethod.POST)
public ResponseEntity<?> someMethod(@RequestBody Application app) {
try {
return new ResponseEntity<>(aService.someMethod(app), HttpStatus.OK);
} catch (Exception ex) {
String errorMessage = ex + " <== error";
LOG.error(errorMessage, ex);
return new ResponseEntity<>(errorMessage, HttpStatus.BAD_REQUEST);
}
}
Используя ResponseEntity, мы получаем пустую схему модели {}, когда пытаемся просмотреть схему модели ответа, используя swagger-ui.html. Если мы изменим тип возвращаемого значения на ResponseEntity, схема модели заполняется для ответа.
Нам было интересно, есть ли способ использования аннотации или какой-либо конфигурации для замены спецификации / определения модели, где ResponseEntity используется для фактического класса?
Спасибо!