Swagger文档中未显示嵌套对象

问题描述 投票:2回答:1

我在版本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);
    }

此处有详细的摇摆模型

swagger model details here

java spring-boot swagger springfox
1个回答
0
投票

如果您在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()

这是一个映射列表的示例,但是对于标准对象也可以使用。

© www.soinside.com 2019 - 2024. All rights reserved.