在 SpringFox 2 中隐藏来自 Spring MVC 控制器的 return 值
Hide return value from a Spring MVC controller in SpringFox 2
我有一个异步 Spring MVC 控制器 returns Future
。 SpringFox 2 将其呈现为:
如何删除它?提前致谢!
我通过向 SprinfFox 的 Docket
添加以下方法调用解决了这个问题:
.genericModelSubstitutes(ResponseEntity.class, CompletableFuture.class)
希望对大家有所帮助。
它不适用于类型。
所以,我们假设这是控制器方法:
public CompletableFuture<ResponseEntity<ResponseDTO>> getDTO() {
return CompletableFuture.completedFuture(ResponseEntity.ok(new ResponseDTO());
}
仅添加配置:
.genericModelSubstitutes(ResponseEntity.class, CompletableFuture.class)
.directModelSubstitute(CompletableFuture.class, java.lang.Void.class)
它不会起作用。方法需要修改为:
public CompletableFuture getDTO() {
return CompletableFuture.completedFuture(ResponseEntity.ok(new ResponseDTO());
}
然后 CompletableFuture 定义将从 OpenAPI 规范中消失。
找到更好的方法。我正在使用 springfox 版本 2.8.0。如果您查看他们的文档 (RTFM),您可以使用类型适配器将类型 类 解析为 POJO。此配置的示例如下:
import com.fasterxml.classmate.TypeResolver;
@Configuration
@EnableSwagger2
public class SpringFoxConfig {
@Autowired
private TypeResolver typeResolver;
@Bean
public Docket apiDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("base package"))
.paths(PathSelectors.any())
.build()
.genericModelSubstitutes(ResponseEntity.class)
.alternateTypeRules(
newRule(typeResolver.resolve(CompletableFuture.class,
typeResolver.resolve(ResponseEntity.class, WildcardType.class)),
typeResolver.resolve(WildcardType.class)))
.useDefaultResponseMessages(false)
.pathMapping("/");
}
控制器方法可以定义类型:
public CompletableFuture<ResponseEntity<ResponseDTO>> getDTO() {
return CompletableFuture.completedFuture(ResponseEntity.ok(new ResponseDTO());
}
我有一个异步 Spring MVC 控制器 returns Future
。 SpringFox 2 将其呈现为:
如何删除它?提前致谢!
我通过向 SprinfFox 的 Docket
添加以下方法调用解决了这个问题:
.genericModelSubstitutes(ResponseEntity.class, CompletableFuture.class)
希望对大家有所帮助。
它不适用于类型。 所以,我们假设这是控制器方法:
public CompletableFuture<ResponseEntity<ResponseDTO>> getDTO() {
return CompletableFuture.completedFuture(ResponseEntity.ok(new ResponseDTO());
}
仅添加配置:
.genericModelSubstitutes(ResponseEntity.class, CompletableFuture.class)
.directModelSubstitute(CompletableFuture.class, java.lang.Void.class)
它不会起作用。方法需要修改为:
public CompletableFuture getDTO() {
return CompletableFuture.completedFuture(ResponseEntity.ok(new ResponseDTO());
}
然后 CompletableFuture 定义将从 OpenAPI 规范中消失。
找到更好的方法。我正在使用 springfox 版本 2.8.0。如果您查看他们的文档 (RTFM),您可以使用类型适配器将类型 类 解析为 POJO。此配置的示例如下:
import com.fasterxml.classmate.TypeResolver;
@Configuration
@EnableSwagger2
public class SpringFoxConfig {
@Autowired
private TypeResolver typeResolver;
@Bean
public Docket apiDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("base package"))
.paths(PathSelectors.any())
.build()
.genericModelSubstitutes(ResponseEntity.class)
.alternateTypeRules(
newRule(typeResolver.resolve(CompletableFuture.class,
typeResolver.resolve(ResponseEntity.class, WildcardType.class)),
typeResolver.resolve(WildcardType.class)))
.useDefaultResponseMessages(false)
.pathMapping("/");
}
控制器方法可以定义类型:
public CompletableFuture<ResponseEntity<ResponseDTO>> getDTO() {
return CompletableFuture.completedFuture(ResponseEntity.ok(new ResponseDTO());
}