【问题标题】:Nested object is not shown in Swagger documentationSwagger 文档中未显示嵌套对象
【发布时间】:2018-11-15 02:02:56
【问题描述】:

我在 2.9.2 版上使用 swagger-springfox,遇到了多个嵌套对象显示不完整的问题。 我有一个名为AddEntityCaseReq 的类和下面的结构。当我访问swagger-ui.html 时,Properties 中没有任何内容。 我在每个班级都标记了@ApiModel@ApiModelProperties。有什么遗漏吗?

这是类结构

AddEntityCaseReq
├── id
└── List<UploadDocuments> uploadDocuments;
    └── Properties
          ├── id
          └── name

这是控制器代码

    @ResponseBody
    @RequestMapping(value = "/addEntityCase", method = RequestMethod.POST)
    @ApiOperation(value = "add entity case", notes = "add entity case")
    @ApiImplicitParam(name = "addEntityCaseReq", value = "reuqest",
            required = true, dataType = "AddEntityCaseReq")
    public CommonResp<Boolean> addEntityCase(@RequestBody AddEntityCaseReq addEntityCaseReq) {
        return addEntityCase.execute(addEntityCaseReq);
    }

在这里大摇大摆的模型细节

【问题讨论】:

    标签: java spring-boot swagger springfox


    【解决方案1】:

    如果您在 openapi 中有类层次结构,您可能只会在 swagger ui 中看到基类。您可以做的是在配置中强制将基类映射为更丰富的子类:

        return new Docket(DocumentationType.SWAGGER_2)
                .securitySchemes(schemeList)
                .alternateTypeRules( AlternateTypeRules.newRule(
                        typeResolver.resolve(LocalDate.class),
                        typeResolver.resolve(Date.class), Ordered.HIGHEST_PRECEDENCE),
                        AlternateTypeRules.newRule(
                                typeResolver.resolve(List.class, LocalDate.class),
                                typeResolver.resolve(List.class, String.class), Ordered.HIGHEST_PRECEDENCE),
                        AlternateTypeRules.newRule(
                                typeResolver.resolve(List.class, YourBaseClass.class),
                                typeResolver.resolve(List.class, YourRicherSubclass.class), Ordered.HIGHEST_PRECEDENCE)
    
                )
                .select()
    

    这是一个映射列表的示例,但它对标准对象的工作方式相同。

    【讨论】:

      猜你喜欢
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多