最近项目使用了SpringBoot整合Swagger,为了更好的管理接口文档。这期间发现了一个很奇怪的问题,现在整理出来,希望能帮助到别的码友们。

现在我有两个DTO,都是对外展示的,其中使用Swagger的时候,注解使用了@ApiModel(value = "业务规则参数输入DTO"),两个DTO看着很相似,里面的属性值也相差无几,然而在Swagger文档里却展示的缺不是我想要的信息,

@Data
@ApiModel(value = "业务规则参数输入DTO")
public class BusinessRulesParamInputDTO implements Serializable {
    private static final long serialVersionUID = 825712205008926830L;
@Data
@ApiModel(value = "业务规则参数输入DTO")
public class BusinessRuleParamsInputDTO implements Serializable {
    private static final long serialVersionUID = -1214520777161836881L;

SpringBoot+Swagger采坑日志

SpringBoot+Swagger采坑日志

SpringBoot+Swagger采坑日志

 swagger展示的是两个DTO的交集,并不是其中某一个DTO的所有属性。后来发现原来是@ApiModel(value = "业务规则参数输入DTO")这个注解的问题,如果里边的value值一样的话,会去交集。我把value改成不同了之后就没有这个问题了。也就是Swagger根据@ApiModel生成文档时,还会根据value的值做唯一判断。具体代码请参考Swagger源码。

好了,一个奇怪的问题,希望大家没有遇到过,遇到了就按照的说的改了测试,应该就可以了。

你的点赞是我继续努力的动力,谢谢大家。

分类:

技术点:

相关文章: