首页 > 解决方案 > Spring Boot 描述参数的 Swagger

问题描述

我的问题很简单:让休息控制器的参数像

(  @RequestBody Wrapper<Request> requestBody){...}

我必须自定义模型的 UI 视图Wrapper<Request>。它有一些字段,我从不同的启动器中使用它。我可以将 @Schema(required=true) 放在 Request 字段中,因为它位于我的模块中,但是 Wrapper 呢?谢谢。

标签: springspring-bootswagger

解决方案


这与 #1490 有关。配置它的方法是在 Docket 配置中创建一个自定义的 alternateTypeRules。例如,如果您有一个生成 ImmutableMyClass 的不可变 MyClass,那么我们将为它添加一条规则,如下所示。

@Bean
public Docket docket() {
  return new Docket(DocumentationType.SWAGGER_2)
    .alternateTypeRules(AlternateTypeRules.newRule(MyClass.class,
                ImmutableMyClass.class));

https://springfox.github.io/springfox/docs/snapshot/#answers-to-common-questions-and-problems,见#22。它具有重置所有自定义设置等副作用。


推荐阅读