我正在使用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);
}
此处有详细的模型详细信息
答案 0 :(得分: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()
这是一个映射列表的示例,但对标准对象也可以使用。